喜欢接触新鲜事物,不断尝试改变,今天的自己一定比昨天的更好。 获得徽章 16
#每天一个知识点# 当渲染树中部分或者全部元素的尺寸、结构或者属性发生变化时,浏 览器会重新渲染部分或者全部文档的过程就称为回流。
#每天一个知识点# Keys 是 React 用于追踪哪些列表中元素被修改、被添加或者被移除 的辅助标识。在开发过程中,我们需要保证某个元素的 key 在其同级元素中具有唯一性。 在 React Diff 算法中 React 会借助元素的 Key 值来判断该元素是新近创建的还是被移动而来的元素,从而减少不必要的元素重渲染。此外,React 还需要借助 Key 值来判断元素与本地状态的关联关系
#每天一个知识点# 客户端路由实现的思想: 1、基于 hash 的路由:通过监听 hashchange 事件,感知 hash 的变化改变 hash 可以直接通过 location.hash=xxx 2、基于 H5 history 路由: 改变 url 可以通过 history.pushState 和 resplaceState 等,会将 URL 压入堆栈,同时能够应用 history.go() 等 API监听 url 的变化可以通过自定义事件触发实现
#每天一个知识点# Vuex 实现了一个单向数据流,在全局拥有一个 State 存放数据,当 组件要更改 State 中的数据时,必须通过 Mutation 提交修改信息,Mutation 同时提供了订阅者模式供外部插件调用获取 State 数据的更新。而当所有异步操作(常见于调用后端接口异步获取更新数据)或批量的同步操作需要走 Action ,但 Action 也是无法直接修改State 的,还是需要通过 Mutation 来修改 State 的数据。最后,根据 State 的变化,渲染到视图上。
#每天一个知识点# SPA 单页面应用(SinglePage Web Application),指只有一个主页 面的应用,一开始只需要加载一次 js、css 等相关资源。所有内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换相关组件,仅仅刷新局部资源。
#每天一个知识点# Vue 的 nextTick 其本质是对 JavaScript 执行原理 EventLoop 的 一种应用。 nextTick 的 核 心 是 利 用 了 如 Promise 、 MutationObserver 、 setImmediate、setTimeout 的原生 JavaScript 方法来模拟对应的 微/宏任务的实现,本质是为了利用 JavaScript 的这些异步回调任 务队列来实现 Vue 框架中自己的异步回调队列。
#每天一个知识点# slot 又名插槽,是 Vue 的内容分发机制,组件内部的模板引擎使用 slot 元素作为承载分发内容的出口。
#每天一个知识点# 当 一 个 Vue 实 例 创 建 时 , Vue 会 遍 历 data 中 的 属 性 , 用 Object.defineProperty ( vue3.0 使 用 proxy ) 将 它 们 转 为getter/setter,并且在内部追踪相关依赖,在属性被访问和修改时通知变化。
#每天一个知识点# async 函数 的方式,async 函数是 generator 和 promise 实现的 一个自动执行的语法糖,它内部自带执行器,当函数内部执行到一个 await 语句的时候,如果语句返回一个 promise 对象,那么函数将 会等待 promise 对象的状态变为 resolve 后再继续向下执行
#每天一个知识点# apply 接受两个参数,第一个参数指定了函数体内 this 对象的指向, 第二个参数为一个带下标的集合,这个集合可以为数组,也可以为类 数组,apply 方法把这个集合中的元素作为参数传递给被调用的函数。 call 传入的参数数量不固定,跟 apply 相同的是,第一个参数也是 代表函数体内的 this 指向,从第二个参数开始往后,每个参数被依 次传入函数。
下一页