Vuex:是一个公共的状态管理
1.什么时候要去使用Vuex?
当项目足够大的时候(大中型项目)用到Vuex
2.Vuex中要存放什么?
公共的状态,每个组件都需要的一个状态
3.Vuex中有哪些属性?每个属性的作用是什么?
state:用来存放公共的状态
辅助函数:
mapState
1、引入Vuex
2、在组件的computed中进行解构赋值
computed:{
...Vuex.mapState({
val:state=>state.inputVal
})
},
好处:减少了代码的重复性
actions:用来处理异步,以及一些业务逻辑
1、actions里面的方法需要通过dispatch来进行触发
2、actions里面的方法都有2个参数一个是对象(commit,state,dispatch) 一个是params(传递过来的数据)
辅助函数:
mapActions
1、引入Vuex
2、在组件的methods中进行解构赋值
methods:{
...Vuex.mapState({
key:val(actions中的函数名称)
})
},
mutations:用来进行数据的修改 修改state中的数据
1、mutations里面的方法需要通过commit进行触发
2、mutations里面的方法都有2个参数 一个是state 一个是params(传递过来的数据)
辅助函数:
mapMutations
1、引入Vuex
2、在组件的methods中进行解构赋值
methods:{
...Vuex.mapMutations({
key:val(mutations中的函数名称)
})
},
getters:相当于Vuex中的一个计算属性
getters中的函数依赖与state中的属性 如果state中的属性发生了改变默认就会触发getters中的方法
辅助函数
mapGetters
computed:{
...Vuex.mapGetters({
key:val getters中的函数
})
},
modules
当多人协作的时候每个人都需要操作store。modules用来做仓库的模块化,
让每一个人都用于一个独立的仓库
这个独立的仓库中也是拥有state getters mutations actions
注意:在每个独立仓库导出的时候一定要加一个namespaced:true
当想要调用自己仓库的方法时只需要加上仓库的名称 例子:num/mutationsNumAdd
遵循Vuex的数据流动,如果涉及到了异步则必须遵循Vuex的数据流动,如果没有涉及到异步的情况下则可以直接
通过commit直接触发mutations里面的方法的
4.Vuex特点 遵循单项数据流