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
的响应式逻辑