前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vuex持久化存储之vuex-persist

Vuex持久化存储之vuex-persist

作者头像
李维亮
发布2021-07-08 10:07:56
2K0
发布2021-07-08 10:07:56
举报
文章被收录于专栏:李维亮的博客李维亮的博客

Vuex 解决了多视图之间的数据共享问题。但是运用过程中又带来了一个新的问题是,Vuex 的状态存储并不能持久化。也就是说当你存储在 Vuex 中的 store 里的数据,只要一刷新页面,数据就丢失了。

引入vuex-persist 插件,它就是为 Vuex 持久化存储而生的一个插件。不需要你手动存取 storage ,而是直接将状态保存至 cookie 或者 localStorage 中。具体用法如下:

安装:

代码语言:javascript
复制
npm install --save vuex-persist
or
yarn add vuex-persist

引入:

代码语言:javascript
复制
import VuexPersistence from 'vuex-persist'

先创建一个对象并进行配置:

代码语言:javascript
复制
const vuexLocal = new VuexPersistence({
    storage: window.localStorage
})

引入进vuex插件:

代码语言:javascript
复制
const store = new Vuex.Store({
  state: { ... },
  mutations: { ... },
  actions: { ... },
  plugins: [vuexLocal.plugin]
}) 

通过以上设置,在图3中各个页面之间跳转,如果刷新某个视图,数据并不会丢失,依然存在,并且不需要在每个 mutations 中手动存取 storage 。

vuex-persist 的详细属性:

属性

类型

描述

key

string

将状态存储在存储中的键。默认: 'vuex'

storage

Storage (Web API)

可传localStorage, sessionStorage, localforage 或者你自定义的存储对象. 接口必须要有get和set. 默认是: window.localStorage

saveState

function (key, state[, storage])

如果不使用存储,这个自定义函数将保存状态保存为持久性。

restoreState

function (key[, storage]) => state

如果不使用存储,这个自定义函数处理从存储中检索状态

reducer

function (state) => object

将状态减少到只需要保存的值。默认情况下,保存整个状态。

filter

function (mutation) => boolean

突变筛选。看mutation.type并返回true,只有那些你想坚持写被触发。所有突变的默认返回值为true。

modules

string[]

要持久化的模块列表。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-13S,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档