有五种属性,State,Getter,Mutation,Action,Module。
(1)State特性:
存储数据,存储状态。将vuex比作一个仓库,仓库里面存放许多对象。而state就是数据源的存放地,对应vue里面的data。
state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新。
通过mapState把全局的state和getters映射到当前组件的computed计算属性中。
(2)getter特性:
对state进行计算操作,他就是store的计算属性。防止多次计算降低性能。
可以在多组间之间复用。若是一个状态只在一个组件内使用就可以不用getters。
(3)Mutation特性:
被action调用。功能非常单一:只是改变state数据和状态。
(4)Action特性:
处理异步程序。
(5)Module模块:
vuex允许将store分成若干模块,每个模块都可以包含以上四种属性。若调用一个变量,但是不同的模块都有的一个同名的变量,这是调用时就会出问题。解决:在模块中添加命名空间:namespaced:true;调用时采用对象的形式调用 某个模块的某个变量就可以了。例如:...Vuex.mapState({a:state=>state.homeStore.a}) ; ...mapActions({fn:"homeStore/fn"})