Vue

实现 VUE 中 MVVM - step3 - Watcher

看这篇之前,如果没看过之前的文章先移步看 实现 VUE 中 MVVM - step1 - defineProperty 实现 VUE 中 MVVM - step2 - Dep 在 step2 中,我们实现了一个管理依赖的 Dep ,但是仅仅使用这个类并不能完成我们想实现的功能,而且代码的解耦上也有点小问题。以下是在 step2 中最后说的几个问题: 解耦不完全,需要传递参数 没有地方可以移除依赖 考虑问题 第一个问题显示出来一个问题,

  • aco
    aco
4 min read
Vue

实现 VUE 中 MVVM - step2 - Dep

看这篇之前,如果没看过 step1 先移步看 实现 VUE 中 MVVM - step1 - defineProperty。 在上一篇我们大概实现了,Vue 中的依赖收集和触发,但我们仅仅是将依赖维护在一个内置数组中,这样做虽然容易理解,但毕竟不好维护,为了更容易的维护这些依赖,我们来实现一个维护依赖的类。 确定功能 首先我们可以先确定这个类下的属性,以及一些功能: 类下属性: target: 函数,用于存放需要添加的依赖 实例下属性及方法: subs/Array: 用于存放依赖 addSub/Function:

  • aco
    aco
3 min read
javaScript

实现 VUE 中 MVVM - step1 - defineProperty

在 VUE 中关于如何实现在网上可以搜出不少,在看了部分源码后,梳理一下内容。 首先,我们需要了解一下 js 中的一个 API : Object.defineProperty(obj, prop, descriptor) 一般情况下我们为一个对象添加一个属性一般都会这么写 let object = {} object.test = 'test' Object.defineProperty 也能做到同样的效果 let object = {}, test = 'test' Object.defineProperty(object, 'test', { configurable:

  • aco
    aco
3 min read