Vuex 整理
Vuex 整理
Vuex 流程
全局单例,主要是为了解决 兄弟组件之间 传值不太方便的问题。是利用了 Vue 插件式机制,使用 Vue.use(vuex)注入进来,然后使用 mixin 在 beforeCreate 的生命周期中把 vuex 的初始化逻辑混入。
流程:组件触发一些动作 -> 提交到 Mutations 中 -> Mutations 去改变 State -> State 数据改变后会触发 render 重新渲染
Vuex 是如何让各个组件响应式更新
对于 Vuex 的 state,是通过实例化 Vue,来实现响应式,vuex 的 getters 是用了 Vue 的计算属性来实现的
1 | store._vm = new Vue({ |
action 和 mutation 区别
action 可以包含异步操作,同时提交的也是 Mutation。
Mutation 必须是同步函数,因为如果异步的话,没办法确认什么时候异步事件才能返回,因此在回调函数中的状态改变是不能追踪的。
实际上我理解就是一个原子性的操作,Mutation 只做状态改变。然后 action 只是一层封装,不受控的代码都集中放在 action 中,只是一个架构性概念,不管里面干什么,最后用 Mutation 触发状态改变就行。
Vuex 和 localStorage 区别
- vuex 就是一个类似全局变量的东西,存在内存里
- localStorage 是浏览器存储的一个方式,存在本地文件中
Vuex 有哪几种属性
- state:最基本的存储数据的
- getters:从基本数据经过一些操作之后派生出来的数据
- mutations:同步提交修改数据
- actions:对 mutations 的一层封装,一般如果异步操作之后再修改数据会用 actions
- 感谢你的欣赏!
赞赏名单
因为你的支持,我感受到写文章的价值。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自HDi - 随便记