摘要:
watch的实现原理 watch和computed一样, 也是基于 Watcher 的 组件内部使用的watch 和 外部使用的 vm.$watch()都是调用的Vue.prototype.$watch方法 当依赖的属性发生变化, 更新的时候执行回调就行了 vue'中watch有多种写法, 这里只简 阅读全文
摘要:
计算属性的实现原理 计算属性也是一个watcher 计算属性定义成方法, 使用的时候直接vm.XX,是因为使用Object.defineProperty在vm实例上定义了属性 计算属性的依赖更新值发生改变是通过脏值检测来实现的 计算属性watcher不能更新视图, 只会更新里面的dirty属性,真正 阅读全文
摘要:
数组更新实现原理 之前我们给每个属性添加了dep, 让dep去收集依赖 当使用push方法改变数组的时候, 并没有改变属性, 而是改变了数组本身 因此, 需要让数组,或对象和属性一样, 也能收集依赖, 并且在检测到数组变化的时候触发更新 在Observer 类中对每一个对象对进行依赖收集 class 阅读全文
摘要:
mixin的实现原理 在Vue.mixin()中的内容会被维护到Vue.options静态属性里面 然后通过mergeOptions以特定的合并策略将全局的属性和用户属性合并起来 在获取用户选项的时候, 调用mergeOptions合并全局Vue.mixin()里面的内容 就能使用Vue.mixin 阅读全文