type
status
date
slug
summary
tags
category
icon
password
Vuex 是什么?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。阅读 vuex 源码的思维导图:

阅读 vuex 源码的思维导图
vuex 的文档 对辅助看源码有不小的帮助,不妨在看源码之前仔细地撸一遍文档。
带着问题去看源码
- global event bus 有何缺陷
- $store 如何注入到所有子组件
- mapState 实现
- mapGetter 如何映射
- Mutation 同步 && Action 异步
- dispatch 方法实现
- module 分割实现 && 局部状态 namespaced
- 如何调用 vue-devtools
- 内置 logger 插件实现
- hotUpdate
- 时间穿梭功能实现
目录
入口文件
vuex 的入口文件在
src/index.js引入了
Store 、install 和一些辅助工具函数,将引入的变量组装成一个对象向外暴露。当我们在项目中引入 import Vuex from 'vuex' 的之后, Vuex 就是这个组装后默认导出的对象了。当然我们也可以通过解构的方式。
install 方法
来看一下
install 方法,在 src/store.js 。install 函数首先判断变量
Vue (store.js 顶部申明的变量) 是否与传入 _Vue 全等,如果全等并且在非生产环境,抛出异常。随后将传入的
_Vue 赋值给 Vue,这里主要是为了避免重复安装。然后调用引入的
applyMixin 方法,并将 Vue 作为参数传入。applyMixin 在 src/mixin.js 作为默认方法导出:取出传入
Vue 的 静态属性 version 做不同处理。2.0 采用
mixin 将 vuexInit 合并到 beforeCreate 生命周期钩子。1.0 重写
_init 方法 将 vuexInit 合并到 _init 方法中。在
vuexInit 方法中,首先判断如果有 options.store 说明是 root 节点,并且判断 store 是 function 就执行将函数返回值赋值给 this.$store ,否则 options.store 直接赋值。 然后判断有父节点,并且父节点有 $store, 就将父节点的 $store 赋值给 this.$store ,这样就保证只有一个全局的 $store 变量。- 作者:张小手
- 链接:https://zxs-1024.cn/article/vuex-init
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章