关于vuex
Posted zhouqiaoyun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于vuex相关的知识,希望对你有一定的参考价值。
vuex就是使用一个store对象包含所有的应用层级状态(所有数据的来源)。
store 的四个属性:state, getters, mutations, actions 。
分解如下:
1、State(仓库):就是存放的变量的,放在state={}对象里。可以使用 mapState 辅助函数帮助我们生成计算属性。
换句话说,整个APP的数据就是存放在
state
对象里,随取随用。2.getters上简单来说就是存放一些公共函数供组件调用。需要对store中的数据进行处理,或者进行重复使用,getters可以理解为vue的计算属性。
getters
获取store
当中的数据作予组件使用,但是这个属性我在项目中不是特别常用。我一般都是这样获取
computed: {
...mapGetters([
‘testDate‘
])
}
例子:
let store = new Vuex.Store({
state: {
testData: 123
},
getters: {
dateCount(state, getters) {
let date = state.testDate;
return `data+1`;
}
}
});
或者
let { mapGetters } from ‘Vuex‘;
let comonent = {
computed: {
...mapGetters([
‘testDate‘
])
}
};
注:actions使用
store.commit
方法触发mutations
改变state
3.在vuex不能直接对state进行操作,所以需要提交mutation,mutation类似于vue的method事件。调用的时候有所差距,需要使用commit。所以 mutations 上存放的一般就是我们要改变 state 的一些方法。
每一个 mutation 都有一个字符串的事件类型和一个回调函数,通常在回调函数里进行操作,
store.commit(‘increment‘)
我们可以把
mutations
理解为“用于改变state
状态的一系列方法”。在vuex
的概念里,state
仅能通过mutation
修改,这样的好处是能够更直观清晰地集中管理应用的状态,而不是把数据扔得到处都是。4.mutation 像事件注册,需要相应的触发条件。而 Action 就那个管理触发条件的。Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,
因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。
actions
的两个方法负责把数据分发到store
中供mutation
使用以上是关于关于vuex的主要内容,如果未能解决你的问题,请参考以下文章