因为不会手写nextTick又被面试官diss了
最近在面试的时候被面试官问到,如何在vue中获取到最新的DOM元素,瞬间内心狂喜,自信地对面试官说 。 嗯,没错,那你手写一个nextTick吧。 痛苦面具,瞬间小脑萎缩了。 在 Vue 的生命周期中,有一段时间是异步的,有时候会遇到数据还未挂载到DOM节点上就试图获取该数据那么此时我们获取到的数据并不是最新的,而 nextTick 就是让我们在这段异步时间结束后执行自己的代码的工具。它确保在DOM更新后执行回调 (起到了等待DOM渲染...
同源策略、跨域相关以及script等标签带来的问题和处理方式
一、同源策略定义 同源策略(Same origin policy)是一种在web应用中重要的安全策略,用于限制一个源(origin)的文档或者它加载的脚本如何与来自另一个源的资源进行交互。这里的“源”由协议、域名和端口组成,只要这三者不完全相同,就算是不同源。 二、同源策略作用 1、防止信息泄露: 同源策略阻止恶意网站通过跨域请求获取用户在其他站点上的敏感信息。例如,禁止一个网页中的脚本访问另一个不同域的网页中的数据,包括读取、修改或删...
简化访问:深入理解SSO单点登录
概念 是一种身份验证和授权机制,它允许用户只需登录一次,就能够访问多个相关但独立的系统或应用。 这种机制通过在用户登录时颁发令牌的方式实现,令牌包含有关用户身份和权限的信息,服务提供者可以通过验证这个令牌来确认用户的身份,而无需用户提供额外的凭证。 的主要优点包括: 1. 用户友好性:用户只需登录一次,即可访问多个应用程序,提供了更好的用户体验和便利性。 2. 提高安全性:通过集中的身份验证,可以减少密码泄露和密码管理问题。此外, 还可...
跨域问题及其解决方案
跨域是指浏览器受同源(协议、域名、端口)策略的限制,不允许不同源的站点之间进行某些操作(如发送ajax请求,操作dom,读取cookie) 假设 源A 和 源B 是非同源的,则浏览器有以下限制: 1. DOM 访问限制 :源A 的脚本不能读取和操作 源B 的 DOM 2. Cookie 访问限制 :源A 不能访问 源B 的 cookie 3. Ajax 响应数据限制 :源A 可以给 源B 发请求,但是无法获取 源B 响应的数据 1. 跨...
Effect:渲染之外的副作用
React 借鉴了许多函数式编程的理念,使得它在构建复杂用户界面时能够保持代码的简洁、可维护和可测试性。函数式编程在很大程度上依赖于纯函数 纯函数(Pure Function)是指在计算机科学和函数式编程中使用的一类函数。一个函数如果具备以下两个主要特性,我们就可以称之为纯函数: 1. 引用透明性:纯函数在相同的输入下总是产生相同的输出。也就是说,函数的输出仅依赖于其输入参数,不依赖于任何外部状态或变量。 2. 无副作用:纯函数不会改变...
汇总14种JavaScript循环遍历的用法
不整理不知道,整理吓一跳,原来 有这么多不同的循环方式的,包含冷门的几个我一共整理出来 。下面将会通过尽可能简单的事例进行说明。 先直入主题看看分别是哪些循环方式: 1、for循环 2、while 循环 3、do...while循环 4、forEach循环 5、map()循环 6、for…in循环 7、for...of 循环 8、filter()过滤循环 9、some()循环 10、every()循环 11、Object.keys循环对...
图解浏览器的多进程渲染机制
观察浏览器的任务管理器可以发现,打开浏览器的一个页面需要多个进程,包括浏览器进程、GPU进程、网络进程、渲染进程等,有插件的话还会包括各种插件进程(Chrome选项 更多工具 任务管理器)。 本文将聚焦于 浏览器的各个进程间是如何配合,将页面呈现给用户的。 📌 你将了解到 1. 浏览器在历史发展过程中,其进程架构做了哪些调整,为什么这样调整,以及解决了哪些问题? 2. 从用户在地址栏输入URL,到页面渲染完成这之间发生了什么?回流和重...
前端面试题汇总之HTML篇(含答案)
1、什么是 DOCTYPE(⽂档类型),有何作用 (1) 解释(是什么) DOCTYPE是是HTML5的文档声明,一种标准 的 。 (2)DOCTYPE的作用包括: 1. 告知浏览器使用哪个HTML版本 :定义和声明HTML文档的类型和版本, 告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档 ,例如, 声明表示文档是基于HTML5的。不同的HTML版本可能具有不同的语法和功能支持,因此DOCTYPE有助于...
如果一个NPM包部分功能不满足需求,如何修改其部分功能
对第三方包进行修改以适应特定需求是一个常见的场景。尽管直接修改 node modules 中的代码是可能的,但这种做法并不推荐,因为这些改动在下次运行 npm install 或更新包时会丢失。 接下来的内容中,我们将来讲解一下处理这种情况的几种推荐方法。 最常见的方法就是 Fork 源代码,通过在 GitHub 上或其他托管平台上 Fork 第三方包的源代码库。对其源代码进行修改,修改完成后将修改后的包发布到 npm 上。如果你不希望...