Vue3刷新浏览器恢复Vuex

摘要:
Vue3刷新浏览器并恢复Vuex。由于Vuex数据存储在内存中,当浏览器刷新时,Vue实例将被重新加载,原始Vuex数据将丢失。ExportconstsessionStorage={//存储集{window.sessionStorage.setItem},//检索数据获取<T>{constvalue=window.sessionStorage.getItemif(value&&&value!
Vue3刷新浏览器恢复Vuex

由于Vuex的数据是存储在内存中的,当浏览器刷新时,Vue实例会重新加载,原本存在的Vuex数据将会丢失。这其中可能包含一些必要的认证信息,使得站点需要重新登录,

封装sessionStorage

sessionStorage 用于临时保存同一窗口(或标签页)的数据,在页面刷新时数据不会删除,但在关闭窗口或标签页将会删除这些数据。

export const sessionStorage = {
  //存储
  set(key: string, value: any) {
    window.sessionStorage.setItem(key, JSON.stringify(value))
  },
  //取出数据
  get<T>(key: string) {
    const value = window.sessionStorage.getItem(key)
    if (value && value != "undefined" && value != "null") {
      return JSON.parse(value)
    }
    return null
  },
  // 删除数据
  remove(key: string) {
    window.sessionStorage.removeItem(key)
  }
}

在登录时存储Vuex

     store.state.Roles = state.user
     sessionStorage.set('state', store.state.Roles)

App.vue中配置

App.vue是组件树的顶端,在这里配置恢复与缓存策略可以对所有页面生效。

import { sessionStorage } from '@/utils/storage/storage'
import { useStore } from 'vuex'
const store = useStore()
store.state.Roles = sessionStorage.get('state')

参考

参考:https://www.cnblogs.com/zimskyzeng/p/14011532.html

免责声明:文章转载自《Vue3刷新浏览器恢复Vuex》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决Android Studio无法下载sdk的问题Oracle使用——impdp导入数据时数据表已经存在下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 阿里云上传组件

vue 阿里云上传组件 Vue.js上传图片到阿里云OSS存储测试项目git地址 本测试项目启动方法 示例链接 组件配置项 实践解释 本文主要介绍如何 在vue项目中使用web 直传方式上传阿里云oss图片 默认读者对vue框架和阿里云oss有一定的了解整体的流程是加载好阿里云sdk -> 初始化上传客户端client -> 等待文件选择...

Ant design vue table 单击行选中 勾选checkbox

最近了解Ant design 设计table 单击行选中checkedbox功能,相比于element的 @row-click 再触发toggleRowSelection,ant design的api就没那么清晰了,言归正传 期望:Ant design table单击行选中 勾选checkedbox 实现: 单选: onClickRow(record)...

IDEA工具引入vue项目后配置和运行

*** 不要使用 import 去引入项目,因为不是传统的项目结构 这样打不开,直接使用open 打开文件夹即可。 一、在IDEA中配置vue插件 点击File-->Settings-->Plugins-->搜索vue.js插件进行安装,下面的图中我已经安装好了 二、搭建node.js环境 安装node.js 可以去官网下载:安装过程就...

vue 服务端渲染 vs 预渲染(1)

服务端渲染: 1、将完整的html输出到客户端 2、要使用通用代码 优点 :  1、首次渲染快(无需等所有的js都完成下载)   2、利于seo 缺点:  1、更多的服务器负载 2、开发受限 3、需要处于node.js/php server 运行环境 预渲染:  1、使用少数营销页的seo   2、生成对特定路由静态的html文件 优点:   1、预渲染更...

vue父子组件传参之ref

在vue中,传参的常用的就父子组件传参,兄弟组件传参。今天我们说的是父子组件传参中的一种方式$ref和ref 首先我们创建一个子组件 并给他添加一个number的值和绑定一个点击事件@click='add()',每次点击加1 Vue.component('counter', { template: `<div @click...

Vue一些基本操作技巧

1.Vue删除data列表中的项 下为异步删除购物车,并清空当前条目 1 cartDel: function(item) { 2 let _this = this; 3 _this.confirm("确认删除吗?", function() { 4 _this.axios.post(cartD...