vuex是专门为vue.js提供的一种状态管理模式,它采用的是集中式储存和管理所有组件的状态和数据,方便使用。
Vex有5种属性,分别是 state、getter、mutation、action、module。
1、state(相当于组件的data。专门用来存放全局的数据)
Vuex 使用单一状态树,即每个应用将仅仅包含一个store 实例,但单一状态树和模块化并不冲突。存放的数据状态,不可以直接修改里面的数据。
2、getter(相当于组件的computed,区别getter是全局的,computed是组件内部使用的)
类似vue的计算属性,主要用来过滤一些数据。
3、mutation(相当于组件中的methods,但是它不能使用异步方法(如定时器、axios均不能使用))
mutation定义的方法动态修改Vuex的store中的状态或数据。
4、action(专门用来处理异步,实际修改状态值的,依然是mutations)
action可以理解为通过将mutation里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据。
view 层通过 store.dispath 来分发 action。
注:同步提交commit
异步提交:dispatch
5、modules
项目特别复杂的时候,可以让每一个模块拥有自己的state、mutation、action、getter,使得结构非常清晰,方便管理。
网友评论