Vuex有以下几种属性:
- state:用于存储应用程序的状态数据。
state: { count: 0 }
- getters:用于从状态数据中派生出新的数据。
getters: { doubleCount: state => state.count * 2 }
- mutations:用于修改状态数据的方法。只能进行同步操作。
mutations: { increment(state) { state.count++ } }
- actions:用于处理异步操作或者包含多个 mutations 的复杂操作。
actions: { asyncIncrement(context) { setTimeout(() => { context.commit('increment') }, 1000) } }
- modules:用于将 Vuex 分割成多个模块,每个模块都有自己的 state、getters、mutations 和 actions。
modules: { cart: { state: { items: [] }, mutations: { addToCart(state, item) { state.items.push(item) } }, actions: { asyncAddToCart(context, item) { setTimeout(() => { context.commit('addToCart', item) }, 1000) } } } }