寄语:问题比答案更重要
建议自己先有个思考的过程,有了自己的答案或者疑问再看解析进行对比。
目前解析在逐步添加中,也可以跳转链接查看。
执行Vue.use时会执行vuex的install方法,会往全局混入一个全局的mixin,只有一个属性beforeCreate,它的作用是让每个组件可以访问到this.$store属性。
执行new Vuex.Store时会将传入的配置进行格式化处理,会递归的注册每个module的state、getters、mutation、actions属性,将每个module的getter、action、mutations放入一个对象里,对应的key前面会加上模块名,而state会放入一个有上下级关系的对象里。
内部会重写commit和dispatch,再当前模块触发状态变更时会自动在要触发的commit和dispatch前面加上模块名。 最后会提供一些map开头的语法糖使用。
扩展阅读: 聊聊 Redux 和 Vuex 的设计思想
解析或答案仅供参考。