我在vuex商店中的状态非常庞大。
有一种方法可以一次性重置所有数据,而不是手动将所有数据设置为null?
我在vuex商店中的状态非常庞大。
有一种方法可以一次性重置所有数据,而不是手动将所有数据设置为null?
您可以声明一个初始状态,然后按属性将其重置为该状态。您不能只做state = initialState,否则会失去反应性。
这是我们正在处理的应用程序中的处理方式:
let initialState = {
"token": null,
"user": {}
}
const state = Vue.util.extend({}, initialState)
const mutations = {
RESET_STATE(state, payload) {
for (let f in state) {
Vue.set(state, f, initialState[f])
}
}
}
致电router.go()
或this.$router.go()
这将刷新页面,并且您的状态将重置为用户首次加载应用程序时的状态。
我不确定您的用例是什么,但是我必须做类似的事情。当用户注销时,我想清除该应用程序的整个状态-所以我只是这样做了window.reload
。也许不完全是您的要求,但是如果这就是为什么要清除商店,也许是替代方法。
如果是注销等情况,则只需重新加载页面即可将商店设置回基本状态。