Vuejs2 如何清空Vuex存储模块状态对象?

Vuejs2 如何清空Vuex存储模块状态对象?,vuejs2,vuex,vuex-modules,Vuejs2,Vuex,Vuex Modules,如何完全清空Vuex存储模块状态对象?我知道如何删除state对象的单个属性,例如Vue.delete(state.slidesList,'slide1'),但我希望在删除单个属性(使用Vue.delete)时,完全清空state对象(而不是删除对象本身),而不会失去对对象本身的反应性,我相信,如果这是错误的,请更正 直接设置state.slideList={}是否会在仍处于反应状态时清空对象?如果是,则表示state.slideList={fname:'Appu'}是一种覆盖对象而不清空对象的

如何完全清空Vuex存储模块状态对象?我知道如何删除state对象的单个属性,例如
Vue.delete(state.slidesList,'slide1')
,但我希望在删除单个属性(使用
Vue.delete
)时,完全清空state对象(而不是删除对象本身),而不会失去对对象本身的反应性,我相信,如果这是错误的,请更正

直接设置
state.slideList={}
是否会在仍处于反应状态时清空对象?如果是,则表示
state.slideList={fname:'Appu'}
是一种覆盖对象而不清空对象的方法(如果目标是用另一个对象完全覆盖对象,而不是清空并重新写入)

如果不是,用另一个新的非空对象覆盖状态对象的正确方法是什么


谢谢

创建一个可以重置状态的突变。然后,使用如下默认值重置状态:

Object.assign(state, newState)

Vuex具有替换存储的根状态的
replaceState
方法

set
将属性添加到
reactive
对象,确保新属性也是reactive的,因此触发视图更新。这必须用于添加 反应对象的新属性,因为Vue无法检测正常 增加财产

module.js

import Vue from 'vue'

const initialState = {
 foo: {},
 bar: {},
 // ...
}

const state = {...initialState}

const mutations = { // To reset a state
 RESET_FOO (state) {
  Vue.set(state, 'foo', initialState.foo)
 },

 UPDATE_FOO (state, payload) { // To update the state
  Vue.set(state, 'foo', payload)
 },

 UPDATE_IN_FOO (state, { key, value }) { // To update a key in a state
  Vue.set(state.foo, key, value)
 },

 RESET_MODULE (state) { // To reset the entire module
  Object.assign(state, initialState)
 }
}

@appu请让我知道,如果我错过了任何相关案例,上述,可能需要在您的用例。谢谢你能举个例子说明一下吗?