浅谈vuex

87 阅读1分钟

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插件