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

vue.js Vue.js

小胖Itachi

2020-03-11

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

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

第761篇《如何清除vuex商店中的状态?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

4个回答
LEY乐伽罗 2020.03.11

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

location.reload()
AStafan 2020.03.11

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

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

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

现,在 2020.03.11

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android