1. Store初始化
- 如未使用
Vue.use(Vuex)进行安装Vuex,则进行安装。安装阶段通过mixin全局注入beforeCreate钩子,组件初始化时触发钩子进行Store注入 - 递归遍历配置项,初始化
module并构建module树 - 递归遍历
module树,安装每个module并对其中的state,getter,mutation,action进行封装并注入到store - 创建内置
vm实例,映射state和getter至vm实例的data和computed属性 - 构建
map映射函数并导出,提供便捷API
2. 取值
render或者操作中获取数据。
如果通过getter获取,触发内置vm计算属性流程,最终触发vm中data的响应式逻辑
3. 赋值
后续操作修改数据。
如果通过action设置,触发Store配置中的action函数,通过commit触发mutation函数对数据进行赋值,最终触发vm中data的响应式逻辑