Vuex 的 store
是 Vuex 状态管理的核心,它有以下几个主要属性值:
- state:
- 作用: 用于存储应用的状态数据,类似于组件中的
data
。 - 特点: 状态是响应式的,当状态发生变化时,依赖该状态的组件会自动更新。
- 作用: 用于存储应用的状态数据,类似于组件中的
- getters:
- 作用: 用于从
state
中派生出一些状态,类似于组件中的computed
属性。 - 特点: 可以对
state
进行一些计算或过滤操作,返回处理后的结果。
- 作用: 用于从
- mutations:
- 作用: 用于修改
state
中的状态,是唯一可以修改state
的方式。 - 特点: 必须是同步函数,每个
mutation
都有一个字符串类型的事件类型(type)和一个回调函数(handler)。
- 作用: 用于修改
- actions:
- 作用: 用于处理异步操作或复杂的业务逻辑,提交
mutation
来修改state
。 - 特点: 可以包含任意异步操作,通过
commit
方法来触发mutation
。
- 作用: 用于处理异步操作或复杂的业务逻辑,提交
- modules:
- 作用: 用于将
store
分割成模块,每个模块拥有自己的state
、getters
、mutations
、actions
。 - 特点: 适用于大型应用,可以将状态管理分割成多个模块,便于维护和管理。
- 作用: 用于将
示例代码
const store = new Vuex.Store({
state: {
count: 0
},
getters: {
doubleCount: state => state.count * 2
},
mutations: {
increment(state) {
state.count++;
}
},
actions: {
incrementAsync({ commit }) {
setTimeout(() => {
commit('increment');
}, 1000);
}
},
modules: {
user: {
state: { name: 'John' },
mutations: {
updateName(state, name) {
state.name = name;
}
}
}
}
});
总结
- state: 存储状态数据。
- getters: 派生状态数据。
- mutations: 同步修改状态。
- actions: 异步操作或复杂逻辑,提交
mutation
。 - modules: 模块化管理状态。
THE END
暂无评论内容