1.vuex作用
vuex是一个基于vue状态管理的库,它可以使各个组件共享数据,且此数据是有响应式的,vuex的数据操作比组件间相互传值便捷,也方便后期维护。
2.属性
<1> state
state中是用来存放共享数据的,在组件中可以通过$store.state访问到,如果state里的数据需要频繁调用,可以使用辅助函数mapstate映射到computed里使用。
<2> mutations
mutations是用来修改state里的数据的,在组件中可以通过$store.commit调用,也可以使用mapmutations映射到methods中。其实也可以直接通过store.state直接修改,但非常不推荐,因为不利于后期维护
<3> actions
mutations是用来处理同步任务的,如果用来处理异步任务,会造成devtools不准确,所以,我们就可以使用actions来处理异步任务,如果想在actions中修改state中的数据,需要用到context中的commit提交mutations,用mutations来更改state。在组件中用$store.dispatch来调用actions中的方法。
<4> getters
getters是基于state来派生数据的,类似于computed
<5> modules
modules是vuex的模块化,方便维护,每个模块中都有state、mutations、actions、getters,如果不开启命名空间的话,在mutations、actions中写的方法就是全局的,用namespaced开启命名空间后,方法独享,组件内访问时必须添加模块名来访问
3.缺点
无法持久化,可以通过localStorage来实现持久化,或者用vuex-persistedstate插件