vue源码之vuex

98 阅读1分钟

vuex-源码 vuex源码主要做了哪些部分?

  1. 绑定mapaction,moudles等等到this上
  2. 使用mixin方法将 init_vuex这个方法注入。
  3. init_vue这个方法做了什么?init_vue使用vue的双向绑定,将state双向绑定。 new Vue({$$state:state}) 这样子state有变化试图也会更新
  4. 定义原型,将原型绑定到this上,这样获取this.$store.state就可以获取store中的数据啦。 Object.defineProperties(Store.prototype,OPRSDS)

vue双向绑定源码 其实,,,,没怎么看懂,大概了解了一点思路。

vue2是definePropoty劫持getter,setter属性。是观察者,被观察者的模式。这个模式有个缺点:数组的某些变化不能捕获到,对象属性的增删不能捕获到。 原因是对象的属性被观察

vue3为proxy代理。proxy(target,{ set:function(){} get:function(){} }) vue3为发布者-订阅者模式,