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

我在vuex商店中的状态非常庞大。

有一种方法可以一次性重置所有数据,而不是手动将所有数据设置为null?

LEY乐伽罗2020/03/11 17:26:02

如果是注销等情况,则只需重新加载页面即可将商店设置回基本状态。

location.reload()
AStafan2020/03/11 17:26:02

您可以声明一个初始状态,然后按属性将其重置为该状态。您不能只做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])
       }
    }
}
达蒙LEY2020/03/11 17:26:02

致电router.go()this.$router.go()

这将刷新页面,并且您的状态将重置为用户首次加载应用程序时的状态。

现,在2020/03/11 17:26:02

我不确定您的用例是什么,但是我必须做类似的事情。当用户注销时,我想清除该应用程序的整个状态-所以我只是这样做了window.reload也许不完全是您的要求,但是如果这就是为什么要清除商店,也许是替代方法。