vuex4原理
2022-10-17 15:21:52 3 举报
vuex4原理总结
作者其他创作
大纲/内容
- _modules: 组装的模块 - _state: 响应式状态 - state: 返回 this._state.data -_wrappedGetters: 所有模块的getters - getters: 代理_wrappedGetters - _mutations: 所有模块的mutations - commit: commit方法 - _actions: 所有模块的actions - dispatch: dispatch方法 - _committing: 是否是合法修改的状态 - _subscribers: 所有订阅事件 - strict: 是否是严格模式 如果是 非法修改会直接报错
constructor:1.this._modules = new ModuleCollection(options) 组装树形模块关系2.installModule => 组装state 添加_wrappedGetters、_mutations、_actions3.resetStoreState => 设置响应式_state 定义getters
2.commit- 找到所有mutation(this._mutations[type])循环执行- 执行所有订阅器 this._subscribers
createStore- new Store()- 会执行Store的Install方法
7._withCommit- 切片编程- 改变一下_committing的状态
class Store
5.replaceState- 直接替换 this._state.data = state- 使用this._withCommit包裹
useStore- return inject(storeKey)
3.dispatch- 找到所有action(this._actions[type])循环执行- 结果返回一个Promise Promise的结果根据Promise.all(entry.map(handler => handler(payload)))- action一定是一个promise 因为在添加_actions的时候 如果action不是一个promise 则使用Promise.resolve包裹
4.subscribe- 订阅事件 添加进 this._subscribers 中
0 条评论
下一页