12 2022 档案
摘要:背景 在 Vue 的初始化阶段,_init 方法执行的时候,会执行 initState(vm) ,它的定义在 src/core/instance/state.js 中。在初始化 data 和 props option 时我们注意 initProps 和 initData 方法中都调用了 observ
阅读全文
摘要:这一章就着重讲两个点: 响应式系统如何收集依赖 响应式系统如何更新视图 我们知道通过Object.defineProperty做了数据劫持,当数据改变的时候,get方法收集依赖,进而set方法调用dep.notify方法去通知Watcher调用本身update方法去更新视图。那么我们抛开其他问题,就
阅读全文
摘要:键盘事件 在 js 中我们通常通过绑定一个事件,去获取按键的编码,再通过 event 中的 keyCode 属性去获得编码 如果我们需要实现固定的键才能触发事件时就需要不断的判断,其实很麻烦 let button = document.querySelector('button') button.o
阅读全文
摘要:Vue3自定义Hooks定义: 个人理解:一些可复用的方法像钩子一样挂着,可以随时被引入和调用以实现高内聚低耦合的目标,应该都能算是hook; 为什么Vue3要用自定义Hook?: 结论:就是为了让Compoosition Api更好用更丰满,让写Vue3更畅快!像写诗一样写代码! 其实这个问题更深
阅读全文
摘要:Vue 的核心之一就是响应式系统,通过侦测数据的变化,来驱动更新视图。 实现可响应对象的方式 通过可响应对象,实现对数据的侦测,从而告知外界数据变化。实现可响应对象的方式: getter 和 setter defineProperty Proxy 关于前两个 API 的使用方式不多赘述,单一的访问器
阅读全文
摘要:模板tamplate经过parse,optimize,generate等一些列操作之后,把AST转为render function code进而生成虚拟VNode,模板编译阶段基本已经完成了,那么这一章,我们来探讨一下Vue中的一个算法策略--dom diff 首先来介绍下什么叫dom diff 什
阅读全文