【Vue】Vuex状态持久化存储

Vue应用数据持久化方案:Vuex状态管理与本地存储的实战对比与选择 本文深入探讨Vue应用中数据持久化的两种核心方案:Vuex状态管理与本地存储(localStorage/sessionStorage)。通过对比分析它们的响应式特性、数据生命周期及适用场景,提供实战中的混合使用策略,帮助开发者根据业务需求选择最佳方案,实现高效的状态管理与持久化存储。 阅读详情

Vuex 状态持久化存储 — vuex-persistedstate插件

1.为什么需要持久化存储

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

但是 Vuex 存在一个问题:当页面刷新时,Vuex 中的数据就会丢失!

因此,我们需要将用户信息、token等需要长期存放的数据实现持久化存储!但如果我们每一次都手动将这些数据存入本地浏览器的缓存中,会比较麻烦。所以我们使用一个插件:vuex-persistedstate

2.实现

使用方法也很简单,先安装插件

npm install vuex-persistedstate --save-dev

在 store 中引入 vuex-persistedstate

import createPersistedState from 'vuex-persistedstate'

初始化 vuex 时加载 vuex-persistedstate 插件即可:

const store = new createStore({
  modules: {
    ...
  },
  getters,
  plugins: [createPersistedState()]
})

插件中默认的存储方式是 localStorage,但也可以修改:

plugins: [
    createPersistedState({ 
        storage: window.sessionStorage, // 存储方式改为sessionStorage
    })
]

补充:Pinia中的持久化存储

在 Vue3 的状态管理工具 Pinia 中,同样可以实现状态持久化存储,但这里使用的插件是:pinia-plugin-persistedstate

要使用该插件,需要在创建 pinia 实例时,应用该插件:

// 入口文件main.js
import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";

const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);

...
app.use(pinia)
...

应用插件后,就可以在使用defineStore()方法时,配置persist选项:

// src/store/index.js
import { defineStore } from "pinia";
...

export default defineStore("xxx", {
    persist: {
        debug: true,
        storage: localStorage,      // 存储方式
        paths: ["user", "token"],   // 存储路径
    },
    ...
})
Pinia使用方法及持久化存储 Pinia是Vue的专属状态管理库,它允许你跨组件或页面共享状态。它跟Vuex有一定的相似度,但还是有很大的区别。愿意看这篇博客的人,想必已经看过了官方文档,官方文档很详细,包含各种使用情景和理论,因此本文不说理论,只说具体的使用方法,想深入研究的建议去看官方文档,本文适合拿来即用。Pinia 官方文档。 阅读详情

相关推荐

Vuex数据持久化存储

Vue项目中使用Vuex作为状态管理,相当于全局的变量存储,可以在所有的vue组件中共享数据、动态修改其状态。vuex是单向数据流,存在vuex中的变量都是响应式数据,组件中一般会通过computed来使用store中的状态、且有缓存但是当我们去刷新浏览器的时候,store中的状态都会被清空、重新初始化为最初的状态,在某些情况下,我们可能需要将这些状态保存下来,所以这篇来介绍如何让vuex或pinia的状态持久化存储。......

专注于技术,分享实战经验,探索技术边界,用代码构建更美的数字世界。 1万+

vuex持久化存储(vuex-persist)

在开发的过程中, vuex数据刷新页面会初始化。像用户信息(名字,头像,token)需要vuex中存储且需要浏览器本地存储来实现持久化存储。

qq_34082921的博客 3171

vuex 项目结构 / 本地存储持久化(详细教程)

vuex 文件结构如下:action.js//做异步操作import * as types from './mutation-types'; import { api_post } from '../api/api.js'; import permission from './permission-routes.js' import store from './state.js'export con

爱睡的虫虫 1922

利用vuex-persistedstate将vuex本地存储

使用场景 最近在做Vue项目中的登录模块,登陆成功后获取到token,将token存储在vuex中,然而我发现切换路由后vuex中的数据都恢复默认了,原来页面刷新之后vuex的数据都会恢复默认。而后面进行鉴权处理需要token,于是我们要将vuex中的数据进行本地存储。 这里就用到了vuex持久化插件vuex-persistedstate Vuex-persistedstate 这个插件的原理结合了存储方式,只是统一配置后就不需要手动写存储方法了 使用方法: 安装 npm install vuex-pe

Dax1_的博客 2178

Vuex:页面刷新后丢失数据的解决方案 && 本地存储

Vuex:页面刷新后丢失数据的解决方案 && 本地存储

Forever_Hopeful的博客 547

生态学家都在用的MixSIAR:用R语言搞定稳定同位素混合模型(从数据整理到结果解读)

本文详细介绍了生态学家常用的MixSIAR工具,通过R语言实现稳定同位素混合模型分析,从数据整理到结果解读全流程。文章涵盖环境准备、模型构建、参数设置、运行诊断及可视化等关键步骤,帮助研究者科学分析河口鱼类食物来源,适用于生态学研究和湿地保护政策制定。

weixin_28683065的博客 437

推荐文章:Vue开发必备利器 - vuejs-storage

推荐文章:Vue开发必备利器 - vuejs-storage 在前端开发的浩瀚世界中,数据持久化始终是构建用户友好应用的关键一环。今天,我们要隆重推荐一个为Vue.js量身打造的数据持久化神器 —— vuejs-storage。它不仅极大地简化了Vue和Vuex应用中的本地存储操作,而且通过优雅的API设计,让开发者能够轻松实现状态的持久化,为用户的体验添砖加瓦。 项目介绍 vuejs-stora...

gitblog_00056的博客 689

AR Tag 与 ROS:从基础部署到机器人视觉定位实战

本文详细介绍了AR Tag技术在ROS环境下的部署与应用,涵盖从基础原理到机器人视觉定位的实战技巧。通过分析AR Tag的特征提取、位姿解算等核心技术,结合ROS工具包`ar_track_alvar`的配置优化,帮助开发者实现高精度的视觉定位系统。文章还分享了深度相机配置、坐标转换及性能优化等实用经验,适用于仓储机器人、物流分拣等场景。

weixin_33146151的博客 181

vuex实现数据持久化

Vue项目中使用Vuex作为状态管理,其本质上类似于全局的变量存储,方便在所有Vue组件中共享数据,而且也可以动态改变状态。Vuex是单向数据流,实现了双向数据绑定。 在单页应用中Vue项目集成Vuex足够基本使用,但是刷新页面的时候数据都会被清空,在某些情况下,我们需要这些状态能保存下来,比如登录后的用户信息、AccessToken、主题配置等。 持久化原理:结合本地存储做到数据状态持久化,使页面刷新后数据不会初始化为默认状态。 1、安装插件 vuex-persistedstate np

ganle的博客 8940

避开STM32H7的‘保护陷阱’:从Option Byte机制深度解析读写保护原理与预防

本文深度解析STM32H723VGT6的Option Byte保护机制,详细讲解RDP读保护和WRP写保护的工作原理及配置方法,并提供硬件设计防御策略和软件预防性编程技巧,帮助开发者避免误触发保护机制导致芯片锁定的问题。

weixin_33686714的博客 441

MATLAB联合Fluent优化仿真

matlab与fluent交互

keleke_的博客 4722

vuex怎么存储状态并持久化存储

先看场景 三个页面: 支付页、支付结果页、外部广告页 前些天开发中遇到支付页支付后,传递支付成功状态至结果页,在结果页点击下方的广告图跳转至外部链接后返回,结果页显示支付失败。 “额,我不是支付成功了嘛,怎么又显示支付失败?excuse me?” 用户看到这,就会很迷惑,由于业务要求统一在结果页添加广告位,导致其他结果页也会遇到这种问题。 这时vuex就派上用场了。 看效果 ...

qq_36135258的博客 4923

UNET改进77:全网首发-添加CFBlock |

本文介绍了在UNet模型中集成CFBlock注意力机制的实现方法。主要分为三个步骤:1) 创建CFBlock模块,包含卷积注意力机制和MLP;2) 在UNet连接处添加注意力模块;3) 在卷积层中嵌入注意力机制。具体实现包括:定义Conv、MLP和ConvolutionalAttention等基础模块,构建CFBlock核心结构;在UNet跳跃连接处插入注意力模块;将注意力机制整合到DoubleConv和Down模块中。该方法通过在不同位置引入注意力机制,可有效提升模型的特征提取能力。代码实现使用PyTor

AIcurator的博客 388

Vue.js Vuex 持久化存储(持久化插件)

Vuex 是 Vue.js 的官方状态管理工具,但它的状态存储默认是非持久化的。这意味着,当你刷新页面时,存储在 Vuex 中的数据会被重置。今天我们来聊聊如何让 Vuex 的状态在页面刷新后依然保留,也就是实现 Vuex 的持久化存储。如果你在开发过程中遇到过刷新页面后 Vuex 状态丢失的问题,那么这篇文章就是为你准备的。等插件,我们可以轻松地实现 Vuex 状态的持久化存储,确保应用在页面刷新后仍能保持状态的一致性。实现 Vuex 状态的持久化有多种方法,其中使用插件是最简便和高效的方式。

轻口味的专栏 1860

安装Office程序时无法安装的解决方案

本文主要介绍了安装Office程序时无法安装的解决方案,希望能对安装Office的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 前置步骤 2.2 方法一 2.3 方法二

weixin_43178406的博客 15万+

PD详解 扩展消息——Source_Capabilities_Extended Message

PD的协议层分为控制消息,数据消息还有扩展消息,今天大师匈讲一下扩展消息中的source_cap_extended。这个消息在扩展消息中算是比较关键的东西。 扩展消息中的source_cap_extended 大师匈先上图,然后逐一解释; 上面的图表说了source_cap_ext中包含了哪些内容。 我们注意到在source_cap扩展消息中是以字节为单位的,并不是像source_cap中以一个object为单位,当然有注意到PD标准spec中说明的扩展消息的话,那里有说明,在header之后的字节

大师匈的博客 3516

vue中全局状态存储 pinia和vuex对比 pinia比vuex更香 Pinia数据持久化及数据加密

                       

夜空孤狼啸的博客 1450

深入解析ZYNQ PL触发PS中断:从原理到创新实践

通过本文,您不仅学会了ZYNQ PL-PS中断的基础实现,更掌握了动态优先级调整中断负载均衡等创新技术。响应延迟降低40%以上系统吞吐量提升2-3倍功耗降低30%支持更复杂的实时应用硬件是身体的骨骼,软件是流动的血液,而中断则是连接二者的神经系统。只有精确控制每一条神经冲动,才能构建真正智能的嵌入式系统。拓展思考如何将AI决策引入中断调度?能否实现跨芯片中断同步?量子计算对中断架构的挑战?

QQ_778132974的博客 417

Vuex 持久化存储

一般在登录完成后,我们可能会往 Vuex 中存储一些重要的信息,比如 token 值等。通过持久化存储这些数据,可以确保用户在下次访问应用时,仍然能够保持登录状态,提高用户体验。例如,我们在页面中使用了 Vuex 的 state 值,假设初始值为一,将其修改为二后,一旦刷新页面,状态又回到了初始值一。这是因为 Vuex 存储的数据并非持久化的。总之,在 Vue3 开发中,了解 Vuex 的非持久化特性以及掌握实现持久化存储的方法是非常重要的,可以帮助我们更好地管理应用的状态,提高应用的可靠性和用户体验。

m0_57836225的博客 551

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

vuex数据存储到了哪里?vuex刷新数据丢失如何处理?或者有几种方案呢?

VUEX刷新数据丢失问题出在哪里? 其实答案很简单,因为js代码运行在内存中,代码运行时所有的变量和函数都是保存在 内存 中的,但我们 按下F5的时候以前申请的内存将会被释放,并会被重新加载js脚本,变量重新赋值。所以在我们使用vuex的时候只要一刷新数据就没了。如果我们想要持久化保存可以使用 localStorage 或者 sessionStorage 存储本地数据保证刷新后数据不会丢失。 使用本地存储 import Vue from 'vue' import Vuex from 'vuex' Vue.u

Luckier_hope的博客 8478

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Vuex:状态管理的利器

在 Vue 开发中,状态管理是一个至关重要的环节。Vuex 作为 Vue 的状态管理模式,为我们提供了一种集中式存储和管理应用状态的方式。本文将结合 Vue2 的讲解,并探讨在 Vue3 中的变化以及代码示例。

m0_57836225的博客 775

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Vue项目 - 更高效的vuex状态缓存方式-createPersistedState 存储token

前言 在使用vue开发项目的时候,我们经常会利用vuex来进行全局的状态管理从而达到实现数据全局共享的目的,但是使用vuex有一个缺点就是在页面刷新之后数据会消失从而使页面展示异常或者请求接口报错,比如用户在登录成功后,我们会从后台拿到用户的token,或者uid等信息,因为大部分的接口都需要用户的token传给后台来进行鉴权处理,因为用户刷新页面是不可控的因素,这个时候我们就要结合本地存储来保证数据的存储。 1. 手动利用HTML5的本地存储API 存储数据第一反应就是前端开发常见的localStorag

weixin_55042716的博客 1万+

vuex中使用vuex-persistedstate插件实现数据持久化

vuex是在中大型项目中必不可少的状态管理组件,刷新会重新更新状态,但是有时候我们并不希望如此。例如全局相关的,如登录状态、token、以及一些不常更新的状态等,我们更希望能够固化到本地,减少无用的接口访问,以及更佳的用户体验。 那么我们可以采用存储到localStorage的方式来解决这一问题, 也可以监听页面刷新的时候重新处理数据 也可以用现在比较流行的插件vuex-persistedstate来解决 让我们来看下使用插件是如何做到持久化的 1.安装插件 npm i vuex-persist

~ 2057

如何实现持久化存储vuex

自己写localStorage.setItem等 需要一个个写, 很麻烦自己写localStorage.setItem等 需要一个个写, 很麻烦。刷新vuex的值会回归初始化, 如果在保存到vuex时, 它能自动保存到浏览器本地, 默认从浏览器本地取呢?这次再来重新登录, 查看浏览器调试工具vuex和浏览器本地存储位置, 是否自动同步进入。刷新网页看调试工具里vuex的默认值确实从本地取出了默认值, 保证了vuex的持久化。(配合vue2使用, 默认最新版是配合vue3使用)

m0_65812066的博客 316

vuex如何实现持久化

vuex实现持久化

810cheng 600
上一篇: 【JS异步】Promise
下一篇: 【Vue】Vuex
cannotbecounted
博客等级 码龄7年 101粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值