Vuejs2 如何清空Vuex存储模块状态对象?
如何完全清空Vuex存储模块状态对象?我知道如何删除state对象的单个属性,例如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'}是一种覆盖对象而不清空对象的
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请让我知道,如果我错过了任何相关案例,上述,可能需要在您的用例。谢谢你能举个例子说明一下吗?