mvvm icon indicating copy to clipboard operation
mvvm copied to clipboard

剖析vue实现原理,自己动手实现mvvm

Results 12 mvvm issues
Sort by recently updated
recently updated
newest added

可以看下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```方法。 ![image](https://user-images.githubusercontent.com/33514576/84727830-83531d80-afc2-11ea-98ce-9ed0f83c264a.png) 用```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)