微任务缓冲队列
2023-02-02
微任务的缓冲队列,就是为了解决很多重复执行的场景,避免某个任务的重复执行造成性能的开销问题,包括 Vue 中的副作用更新任务,都是采用微任务队列进行缓冲 js // 任务缓存队列,用Set数据结构表示 // 这样可以保证同一个任务执行多次的时候,Set中存入的永远都是唯一的 cont queue ...
246 字
|
1 分钟
diff算法原理和总结
2023-01-28
这里举例采用 vue 的框架设计进行解释 diff diff 算法的核心其实是都是只关心新旧的虚拟节点都存在一组子节点的情况。目的都是达到减少性能的开销,其中有比较直观的就是--减少 dom 节点的操作 在中 当涉及到两组子节点的更新的时候,我们采用的是全量卸载并且重新挂载的形式去进行子节点的...
7360 字
|
37 分钟
vue3渲染器设计与总结
2022-12-03
前置概念 虚拟 dom vdom,虚拟 dom 就是用来表示真实的 dom 元素的属性或者特点的一套数据结构,和真实 dom 一样具有树形结构,具有许多树形节点 vnode 可以简要的表示 js const vnode = { type: "h1", children: [ ...
8817 字
|
44 分钟
双击事件和单机事件冲突解决方案
2022-11-09
双击事件(dblclick)时,不触发单击事件(click) 事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。即一个标签元素(如button等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件...
480 字
|
2 分钟
vite学习记录
2022-11-03
vite前置知识 - no-bundle:利用浏览器原生 ES 模块的支持,实现开发阶段的 Dev Server,进行模块的按需加载,而不是先整体打包再进行加载。 - import:vite中的一个 import 语句代表一个 HTTP 请求 初始化模板 这里我们采用pnpm和vite,当...
2396 字
|
12 分钟
理解Proxy和Reflect
2022-09-03
理解Proxy Vue3中利用的是Proxy以及Reflect去代理对象的 我们知道Proxy是只能代理对象类型的,非对象类型不可以进行代理 所谓代理: 指的是对一个 对象 的 基本语义 的代理 何为基本语义 比如我们对对象的一堆简单操作 js console.log(obj.a...
938 字
|
5 分钟
typescript刷题记录
2022-08-02
typescript刷题记录 题目一 解决如下错误 ts type User = { id: number; kind: string; }; function makeCustomer<T extends User(u: T): T { // Error(TS 编译器...
3892 字
|
19 分钟