怎样重置vuex所有state的状态

现在有一个场景,在用户退出登录之后,要将state下面的所有状态重置回初始状态,避免在切换用户的时候数据会串,请问要怎样做呢?

clipboard.png

回答:

已经有人答了,我认为最好的方法就是创建一个mutation叫做reset,然后再通过reset的action调用这个方法。
至于初始值你可以用一个变量存着,但是注意避免对象引用赋值,拷贝一个新对象。

回答:

  1. 创建一个mutation,将state重新赋值为初始值(可以在开始时深拷贝一个state对象)

  2. 创建一个action,触发上面的mutation

  3. 退出登录时调用这个action
    没实际试过。

回答:

“将state下面的所有状态重置回初始状态”从实现上来讲其实就是一次变量赋值,你可以把初始状态存在一个常量中,然后封装一个将state赋值为这个常量的action,在需要的时候调用就好了。

回答:

单独定义初始值,然后拷贝给state
state初始化,就在拷贝一次

回答:

mutations:{
   [USER_SIGNOUT](state){
         Object.key(state).foreach((k)=>{
                Vue.delete(state,k);
         })
    }
}

回答:

貌似要这么写

const stateTpl = {
  ... // 状态在此处写
}

// state
state: window._.cloneDeep(stateTpl)

// mutations
resetAll (state) {
  Object.assign(state, stateTpl) // 要用Object.assign而不是直接给state赋值。
}

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注