江门网站设计华企立方,湖北省住房城乡建设厅网站查,江苏苏州网站建设,wordpress 插件文件夹1#xff0c;简单总结
Vuex就是一个构造函数#xff0c;他拥有install方法和Store类这两个属性。在vue初始化调用new Vue的时候#xff0c;将store作为参数传入#xff0c;然后调用Vue.use()实际是调用install方法将store这个实例挂载到全局#xff0c;从而可以保证全局只…1简单总结
Vuex就是一个构造函数他拥有install方法和Store类这两个属性。在vue初始化调用new Vue的时候将store作为参数传入然后调用Vue.use()实际是调用install方法将store这个实例挂载到全局从而可以保证全局只有一个唯一的store对象。
Store这个类拥有commit和dispatch这些方法同时将用户传入的state包装成data从而在vew Vue()的过程中实现了响应式。 2install方法
install方法是借助vue的beforeCreate钩子函数执行因为此时$options还没有初始化好他的核心逻辑就是将$options.store赋值到全局$store且最终将插件添加到installedPlugins中保证相同的插件不会被重复注册。 3state实现
vuex中的state值就是Store的一个属性可以直接从$store对象中获取。同时由于在vue初始化时data中的数据是响应式的因此实现的过程将options.state赋值给了data实现了响应式。 4getter实现
用户传入的getter存储到getters数组中也是利用Object.defineProperty的get接口同时借助了computed计算属性实现实时监听。 5mutation实现
与getter的实现类似也是将用户传入的mutation存入mutations数组触发mutation要调用的commit方法实际是访问数组中的某个mutation而触发的调用egthis.mutations[method](arg) 6action实现
action的实现与mutation几乎雷同只是action的dispatch触发是定义的异步箭头函数this.actions[type](payload)。 详细总结参考手写Vuex核心原理