【Vue】vuex冷门实例方法--replaceState

vuex冷门实例方法–replaceState

在这里插入图片描述

状态合并

看这段代码:

if (sessionStorage.getItem("store")) {
  this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem("store"))))
  console.log('正在从sessionStorage恢复store')
  console.log(this.$store.state)
  sessionStorage.removeItem("store")
}

我们经常遇到一个问题就是,刷新页面导致状态丢失,一个解决方案就是使用 sessionStorage 随时储存 state,刷新页面出发 created 则判断 sessionStorage.state 是否有内容,有则覆盖原 state

这里注意:

  1. replaceState 是覆盖 state ,合并的工作要使用 Object.assign() ,当然了,大部分时候并不需要合并,因为 sessionStorage 里的就是最新的 state ,直接覆盖就行了
  2. 尽量避免使用这个方法,在错误的位置使用这个方法会造成数据被错误覆盖,只应该在非常有必要恢复 state 的时候才使用,更多的时候,如果用户刷新页面,应让用户从头走操作流程,只有在连续答题、购物等少数场合需要用到,而且并不是必须使用,依然有其他变通方法
时光旅行调试

时光旅行调试是指 devtools 提供的时光旅行调试,这里提到时光旅行调试,我其实不太明白其中的意思,可能的意思有两个,不是一就是二:

  1. devtools 自己调用 replaceState 方法来时光旅行,无需开发者写任何代码
  2. 开发者在某些代码位置覆盖 state ,这种可能性比较小
  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值