摘要:
class MVVM { constructor(options) { // 挂载在实例 this.$el = options.el; this.$data = options.data; // 如果有模版就编译 if (this.$el) { // 数据劫持 new Observer(this.$ 阅读全文
摘要:
Watcher 通过新值和老值进行对比 如果发生变化 就调用更新方法 class Watcher { constructor(vm, expr, cb) { this.vm = vm; this.expr = expr; this.cb = cb; // 获取一下老值 this.value = th 阅读全文
摘要:
Compile 同样以Vue为例编译元素三个步骤:1. 先把真实DOM放入内存中 fragment;2.编译 => 提取元素节点含有v- v-model 文本节点{{}};3. 把编译好的fragment 放入页面 class Compile { constructor(el, vm) { this 阅读全文
摘要:
Observer MVVM的理论,就不去赘述了。 以Vue中的Observer 数据劫持来说 其主要使用ES5中的Object.defineProperty(vue3.x中表示弃用Object.defineProperty使用更快的原生proxy) 去给对象的属性添加get和set,废话不多说上代码 阅读全文