如何清除 vuex 商店中的状态?

新手上路,请多包涵

我在 vuex 商店的状态是巨大的。

有没有办法一次性重置所有状态数据,而不是手动将所有内容设置为空?

原文由 KaliCharan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 403
1 个回答

我刚刚找到了适合我的绝佳解决方案。

 const getDefaultState = () => {
  return {
    items: [],
    status: 'empty'
  }
}

// initial state
const state = getDefaultState()

const actions = {
  resetCartState ({ commit }) {
    commit('resetState')
  },
  addItem ({ state, commit }, item) { /* ... */ }
}

const mutations = {
  resetState (state) {
    // Merge rather than replace so we don't lose observers
    // https://github.com/vuejs/vuex/issues/1118
    Object.assign(state, getDefaultState())
  }
}

export default {
  state,
  getters: {},
  actions,
  mutations
}

感谢 Taha Shashtari 的出色解决方案。

迈克尔,

原文由 Michael Horojanski 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题