iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vuex数据持久化的两种实现方案
  • 900
分享到

vuex数据持久化的两种实现方案

2024-04-02 19:04:59 900人浏览 八月长安
摘要

目录业务需求: 方案一:Vuex-persistedstate方案二:vuex-persist总结 业务需求: 在基于vue开发SPA项目时,为了解决页面刷新后数据丢失的问题,我们

业务需求:

在基于vue开发SPA项目时,为了解决页面刷新后数据丢失的问题,我们一般都是将数据存储在localstorage或sessionstorage中;当数据需要全局处理统一管理时,我们也会借助于vue官方提供的vuex来进行数据的统一管理。vuex相比localstorage或sessionstorage来说,存储数据更安全些。与此同时,vuex也存在一些弊端,当页面刷新后,vuex中state存储的数据同时也会被更新,vuex中存储的数据不能持久化,需要监听处理来维持vuex存储的数据状态持久化。

为解决页面刷新后vuex中存储的数据状态不能持久化的问题,我采取的方案是借助第三方插件工具来实现vuex数据的持久化存储,来解决页面刷新后数据更新的问题。

方案一:vuex-persistedstate

安装插件


yarn add vuex-persistedstate
// 或
npm install --save vuex-persistedstate

使用方法


import Vuex from "vuex";
// 引入插件
import createPersistedState from "vuex-persistedstate";

Vue.use(Vuex);

const state = {};
const mutations = {};
const actions = {};

const store = new Vuex.Store({
	state,
	mutations,
	actions,
  
	plugins: [
		createPersistedState({
      // 存储方式:localStorage、sessionStorage、cookies
			storage: window.sessionStorage,
      // 存储的 key 的key值
			key: "store",
			render(state) {
        // 要存储的数据:本项目采用es6扩展运算符的方式存储了state中所有的数据
				return { ...state };
			}
		})
	]
});

export default store;

vuex中module数据的持久化存储



export const dataStore = {
  state: {
    data: []
  }
}
 

import { dataStore } from './module'
 
const dataState = createPersistedState({
  paths: ['data']
});
 
export new Vuex.Store({
  modules: {
    dataStore
  },
  plugins: [dataState]
});

注意事项:

  1. storage为存储方式,可选值为localStorage、sessionStorage和cookies;
  2. localStorage和sessionStorage两种存储方式可以采用上述代码中的写法,若想采用cookies坐位数据存储方式,则需要另外一种写法;
  3. render接收一个函数,返回值为一个对象;返回的对象中的键值对既是要持久化存储的数据;
  4. 若想持久化存储部分数据,请在return的对象中采用key:value键值对的方式进行数据存储,render函数中的参数既为state对象。

方案二:vuex-persist

安装插件


yarn add vuex-persist
// 或
npm install --save vuex-persist

使用方法


import Vuex from "vuex";
// 引入插件
import VuexPersistence from "vuex-persist";

Vue.use(Vuex);
//  初始化
const state = {
	userName:'admin'
};
const mutations = {};
const actions = {};
// 创建实例
const vuexPersisted = new VuexPersistence({
	storage: window.sessionStorage,
  render:state=>({
  	userName:state.userName
    // 或
    ...state
  })
});

const store = new Vuex.Store({
	state,
  actions,
  mutations,
  // 数据持久化设置
  plugins:[vuexPersisted.plugins]
});

export default store;

属性方法

属性值 数据类型 描述
key string The key to store the state in the storage_Default: 'vuex'_
storage Storage (WEB api) localStorage, sessionStorage, localforage or your custom Storage object.Must implement getItem, setItem, clear etc.Default: window.localStorage
saveState function(key, state[, storage]) If not using storage, this custom function handles saving state to persistence
reducer function(state) => object State reducer. reduces state to only those values you want to save. By default, saves entire state
filter function(mutation) => boolean Mutation filter. Look at mutation.type and return true for only those ones which you want a persistence write to be triggered for. Default returns true for all mutations
modules string[] List of modules you want to persist. (Do not write your own reducer if you want to use this)
asyncStorage boolean Denotes if the store uses Promises (like localforage) or not (you must set this to true when suing something like localforage)Default: false
supportCircular boolean Denotes if the state has any circular references to it self(state.x === state)Default: false

总结

上述两种方案都可以实现vuex数据持久化存储。方案一是我在实际开发过程中用到的,方案二是在GitHub上看到的,综合来说,两者都可以时间最终的需求,而且都有对应的案例Demo可以参考。相比来说方案一在gitHub上的start数要高于方案二。

请结合实际情况选择符合自己的方案!

到此这篇关于vuex数据持久化的两种实现方案的文章就介绍到这了,更多相关vuex数据持久化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vuex数据持久化的两种实现方案

本文链接: https://www.lsjlt.com/news/130389.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vuex数据持久化的两种实现方案
    目录业务需求: 方案一:vuex-persistedstate方案二:vuex-persist总结 业务需求: 在基于vue开发SPA项目时,为了解决页面刷新后数据丢失的问题,我们...
    99+
    2024-04-02
  • Vuex数据持久化怎么实现
    小编给大家分享一下Vuex数据持久化怎么实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是vuexvuex :是一个专为vue.js开发的状态管理器,采用集...
    99+
    2023-06-15
  • vuex数据持久化的实现方法有哪些
    本篇内容介绍了“vuex数据持久化的实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录业务需求:方案一:vuex-persis...
    99+
    2023-06-20
  • vuex 第三方包实现数据持久化的方法
    目的: 让在vuex中管理的状态数据同时存储在本地。可免去自己存储的环节。 在开发的过程中,像用户信息(名字,头像,token)需要vuex中存储且需要本地存储。 ...
    99+
    2024-04-02
  • Vuex数据持久化实现的思路与代码
    什么是vuex vuex :是一个专为vue.js开发的状态管理器,采用集中式存储的所有组件状态 五个属性: state、getters、mutations、actions、mod...
    99+
    2024-04-02
  • vuex持久化怎么实现
    本篇内容介绍了“vuex持久化怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vuex持久化vuex:刷新浏览器,vuex中的stat...
    99+
    2023-06-22
  • redis数据持久化的实现方法
    小编给大家分享一下redis数据持久化的实现方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis实现数据持久化的两种实现方式:RDB:指定的时间间隔内保存数据快照AOF:先把命令追加到...
    99+
    2024-04-02
  • 关于Redis数据库三种持久化方案介绍
    目录一、回顾Redis二、方案一:bgsave三、方案二:配置文件rdb四、方案三:aof总结一、回顾Redis 1、redis的特点 redis是一个内存中的数据结构存储系统。优点...
    99+
    2024-04-02
  • redis的两种持久化方式是什么
    Redis有两种持久化方式,分别是RDB持久化和AOF持久化。 RDB持久化:RDB持久化是将Redis在内存中的数据以快照的形...
    99+
    2024-04-22
    redis
  • vuex数据持久化的原理是什么
    Vuex数据持久化的原理是将Vuex存储在本地存储(localStorage)中,以便在页面刷新或关闭后仍能保留Vuex的状态。具体...
    99+
    2023-05-14
    vuex数据持久化 vuex
  • vuex中数据持久化插件vuex-persistedstate怎么用
    小编给大家分享一下vuex中数据持久化插件vuex-persistedstate怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据持久化vuex-persi...
    99+
    2023-06-29
  • prometheus数据持久化方案是什么
    Prometheus的数据持久化方案主要包括两种:本地存储和远程存储。 本地存储:Prometheus默认会将采集的监控指标数据存...
    99+
    2024-03-13
    Prometheus
  • Redis中的两种持久化方式是什么
    本篇内容主要讲解“Redis中的两种持久化方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis中的两种持久化方式是什么”吧!Redis的两种持久化...
    99+
    2024-04-02
  • vuex中数据持久化插件vuex-persistedstate使用详解
    目录数据持久化vuex-persistedstate使用安装起步配置使用自定义存储方式想使用cookie同理使用vuex-persistedstate插件遇到的问题数据持久化vuex...
    99+
    2024-04-02
  • vuex刷新之后数据丢失,数据持久化,vuex-persistedstate问题
    目录为什么刷新之后vuex的状态就没了?常见的解决方案完美方案是利用sessionStorage/localStorage主要是针对mutations和getters如何让vuex数...
    99+
    2024-04-02
  • redis两种持久化方式的区别有哪些
    这篇文章主要介绍redis两种持久化方式的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids...
    99+
    2024-04-02
  • Redis支持哪种类型的数据持久化
    Redis支持以下几种类型的数据持久化: RDB持久化:在指定时间间隔内将内存中的数据保存到磁盘上,生成一个快照文件。默认情况下...
    99+
    2024-03-11
    Redis
  • redis的2种持久化方案深入讲解
    前言 Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(dif...
    99+
    2024-04-02
  • mysql实现数据持久化的方式有哪些
    MySQL实现数据持久化的方式主要有以下几种: 数据库存储:MySQL是一种关系型数据库管理系统,最常见的方式是将数据存储在数据...
    99+
    2023-10-26
    mysql
  • mongodb数据持久化怎么实现
    在MongoDB中,数据持久化是通过将数据写入硬盘来实现的。MongoDB会在后台自动将数据写入到磁盘中,以确保数据的持久性。 Mo...
    99+
    2023-10-21
    mongodb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作