摘要:
测试 阅读全文
摘要:
const allArr = [] const oldArr = payload.data for (let i = 0; i < oldArr.length; i += 1) { let flag = true for (let j = 0; j < allArr.length; j += 1) 阅读全文
摘要:
创建Vue实例对象,记录传入的选项,并注入到Vue实例当中 创建observer observer数据劫持,通过Object.defineProperty把data中属性中添加getter和setter,每个属性都还会创建一个dep对象,而此时getter和setter不会执行。 创建dep对象时, 阅读全文
摘要:
watcher 功能 数据发生变化触发依赖,dep通知所有watcher更新视图 自身实例化的时候往dep对象中添加自己 结构 实现思路 data中每个属性,都会创建一个dep对象,dep收集依赖时,把所有依赖该属性的观察者添加到dep里的subs数组里,setter里触发依赖,调用dep的noti 阅读全文
摘要:
Dep(dependency) 功能 收集依赖,在getter方法里收集依赖。每个响应式属性,都会创建一个dep对象,他负责收集所有依赖该属性的地方,在这些地方创建一个watcher对象,添加观察者(watcher)。所以dep收集的就是依赖该属性的watcher对象 发送通知,setter方法里通 阅读全文
摘要:
observer 功能 负责把data选项中的属性转换成响应式数据 data中的某个属性也是对象,把该属性转换成响应式数据。 数据变化发出通知 结构 实现思路 walk方法判断传入的data是否是对象,加强代码健壮性 遍历data对象所有属性,调用defineReactive,转化为响应式数据 de 阅读全文
摘要:
需要模拟的vue实例成员 有如下5种类型 整体结构 各个模块分析 Vue 链接 把data中的成员注入到vue实例,并且把data中的成员转成getter和setter vue内部调用observer和compiler observer 链接 数据劫持,对data中所有属性进行监听,如有变动,可拿到 阅读全文
摘要:
Vue 功能 负责接收初始化的参数 负责把data中的属性注入到vue实例,转化称getter,setter 负责调用observer监听data中所有属性的变化 负责调用compiler解析指令/差值表达式 结构 实现思路 通过属性保存选项的数据 把data中的成员转化称getter和setter 阅读全文
摘要:
compiler 功能 负责编译模板,解析指令和插值表达式 负责页面的首次渲染 当数据变化后重新渲染视图 结构 实现思路 根据图示,这个类有两个属性以及一些操作属性的方法 compiler类的构造函数,传入vue的实例,定义el和vm两个属性,分别记住模板和vue实例,紧接着调用this.compi 阅读全文
摘要:
inputChange(evt) { let obj = {} let value = evt.target.value let type = document.getElementById(evt.target.id).type if(type == 'number') { value = (value.match(/^\d*(\.?\d{0... 阅读全文