vuex 这种通信方式属于全局通信方式,一般用在中大型项目中。如果业务逻辑复杂,很多组件之间需要处理一些公共的数据,就可以用到Vuex。它相当于一个公共仓库,保存着所有组件都能共用的数据。
Vuex 应用的核心就是 store (仓库) 。
我们不能直接改变 store 中的状态。改变 store 中的状态的唯一途径是 commit mutation。
state
state 数据状态,注入store后就可以使用 this.$store.state 直接获取状态。
mutations
mutations的中文意思是“变化”,利用它可以更改状态。
getters 可以对state中的成员加工 (有点像计算属性)
actions
不能直接在mutation方法中进行异步操作,用actions来进行异步操作,再 commit mutation。
actions和mutations的区别
commit mutation是更改状态的唯一方法。
action 可以包含异步操作;action 提交的是 mutation,而不是直接变更状态。
Module
Module是store分割的模块,每个模块拥有自己的state、getters、mutations、actions