本文适合有必定基础的同窗阅读,主要探究vuex的源码结构,有那几部分组成,每部分承担的职责,每部分之间的关系。以及部分代码细节,和编程技巧。vue
本文主要针对代码结构和设计,画图作抽象思考。代码细节请查看文末参考资料,很是详尽和仔细。
主要描述Store
, ModuleCollection
, Module
三个类,以及它们之间的关系git
比较核心的是Store
类,核心的安装模块方法(用到ModuleCollection类),初始化store._vm
方法,都在其中github
store对象的结构与源码中store类的构造函数中是一一对应的,若是有不在构造函数中的,则是分散在部分实例方法中作赋值的,例如 store._vm
属性。有兴趣的能够一一比较分析,vuex
1.store._modules
是ModuleCollection实例,ModuleCollection用到Module类,本质是构造一个Module树
2.分module的state,本质上被构造为state树,做为store._vm._data.$$state
3.store._modulesNamespaceMap
是namespace -> module
映射,用于按namespace快速查找对应module编程
什么最重要,数据结构最重要,只有你定义出合理的数据结构,才能知足你的功能需求,它是基石也是核心。
https://zhuanlan.zhihu.com/p/...segmentfault
https://github.com/dwqs/blog/...数据结构
https://github.com/answershut...函数
https://segmentfault.com/a/11... 这个主要是讲代码细节,也不错spa
https://zhuanlan.zhihu.com/p/... 这个强烈推荐,既讲代码结构和功能设计,又讲代码细节。设计