yarn add vuex 或 npm i vuex
vuex全局状态管理器,目的为了解决跨层级组件通信
开启严格模式,默认是非常严格的 mutations如何执行异步代码? 非严格模式下执行异步代码
严格和非严格区别? 默认严格不能执行异步代码,会报错 非严格模式下执行mutations异步代码
存储全局状态,数据双向响应 等价于组件里的data
用于对state进行计算,返回一个新值,等价于组件里的computed
唯一用于修改state的方法,且只能执行同步代码。使用commit方法调用 自动被注入state参数
用于执行异步操作的方法,只能通过调用mutations来修改state,使用dispatch调用 自动被注入context对象参数
模块化开发vuex
默认情况下,只有state拥有作用域对象。其他的1部分自动提升到根模块上。所以为了避免发生命名冲突,要使用命名空间
在独立的模块化中使用namespaced
设置为true,在使用该模块中除了state之外,其他的部分名字前面自动拼接上模块名称:类似于路径一样name/getter
1.调用state $store.state.name.stateItem
2.调用getters $store.getters[‘name/getterItem‘]
3.调用mutations $store.commit(‘name/mutation‘,...)
4.调用actions $store.dispatch(‘name/action‘,...)
创建命令空间的助手函数,方便让当前组件的所有store里的独立资源,都是来自于同一个store模块里的。
state到组件,组件通过dispatch调用actions进行通信,actions通过commit调用mutations修改state,state是双向数据响应的,会自动让组件更新。
所有api前面加map
原文:https://www.cnblogs.com/2773037489-qq/p/14844563.html