vuex-源码 vuex源码主要做了哪些部分?
- 绑定mapaction,moudles等等到this上
- 使用mixin方法将 init_vuex这个方法注入。
- init_vue这个方法做了什么?init_vue使用vue的双向绑定,将state双向绑定。 new Vue({$$state:state}) 这样子state有变化试图也会更新
- 定义原型,将原型绑定到this上,这样获取this.$store.state就可以获取store中的数据啦。 Object.defineProperties(Store.prototype,OPRSDS)
vue双向绑定源码 其实,,,,没怎么看懂,大概了解了一点思路。
vue2是definePropoty劫持getter,setter属性。是观察者,被观察者的模式。这个模式有个缺点:数组的某些变化不能捕获到,对象属性的增删不能捕获到。 原因是对象的属性被观察
vue3为proxy代理。proxy(target,{ set:function(){} get:function(){} }) vue3为发布者-订阅者模式,