mvvm
mvvm copied to clipboard
剖析vue实现原理,自己动手实现mvvm
可不可以把虚拟dom弄上
可以看下react,这样是不是可以大大提高解析
大佬, 能解答一下,为什么 Object.defineProperty 劫持一下 computed 中的属性,就可以实现 computed 的功能呢, ```js computed: { fullname () { return this.firstname + this.lastname } } ``` firstname 或 lastname 更新怎么触发的 fullname, 这一块不是很明白, 为什么 lastname 更新时...
代理```vm.$options.methods``` 到```vm```上,不然```watch```里面不能以```this.clickBtn```获取到在```methods```里定义的```clickBtn```方法。  用```this.$options.methods.clickBtn```获取的话```clickBtn```里的```this```指向就变了
优化了一下,通过参数控制是否触发属性的get , 把订阅者(watcher)添加到订阅器(keyDep)中。这样会比较好理解, 另外个人觉得 在闭包中保存 dep 对新手不太好理解, 可以提取出来 用统一的发布订阅中心维护 订阅器和相应的订阅者 ``` observer.js get: function () { KeyDep.current_watcher && keydep.addSub(KeyDep.current_watcher) return val; }, watcher.js function Watcher(vm,attr_val,cb){ this.vm = vm; this.attr_val =...
例如:{{someStr+child.someStr}},这种直接报错,应该是挺常见的,computed可以解决。 如果我扩展了for指令,表达式里会用到局部的index变量,就没办法解析了。
基于Proxy实现的简易版: [buejs](https://github.com/bowencool/bue)