Vue3 pinia持久化存储(组合式Api案例演示)
pinia-plugin-persist( pinia持久化插件)
本文采用的是 组合式Api的方式来做Pinia的持久化存储演示
如果对pinia的持久化还是不是很了解的👨🎓|👩🎓,可以看一下笔者的上一篇文章,或者去官网查看一下!!!!!!👇👇👇🔗
点击我,跳转至组合式Api声明仓库🌹🌹
文章目录
- pinia-plugin-persist( pinia持久化插件)
- 持久化存储:
- 一、为什么要进行数据持久化存储
- 二、pinia-plugin-persist使用步骤如下
- 1.引入库
- 代码如下:
- 安装结果如下图所示:
- 2.在Pinia上注册pinia-plugin-persist插件
- 代码如下
- 如下图所示(操作解释)
- 3.声明测试store(组合式Api)
- 组合式声明Store文章(不会组合式Api的同学点👇🔗)
- 代码如下:
- 如下图所示(代码解释):
- 4.测试pinia数据持久化
- 代码如下
- 1.Vue3的Templa模版代码
- 2.Vue3的script内代码
- 测试结果如下图所示:
- 三、关于pinia-plugin-persist插件的功能拓展
- 设置存储的key值
- 修改存储形式
- 选择性存储对应字段(自定义状态的存储方式)
- 总结
持久化存储:
使用过Vuex的同学大概率都对
Vuex 的数据持久化存储
有一定的了解。
数据持久化存储:
顾名思义是对数据进行永久存储,防止页面刷新导致数据发生丢失!!!
一、为什么要进行数据持久化存储
前面已经讲过了:主要是为了防止页面刷新,导致已经有的数据出现丢失的情况。
不使用仓库也可以对数据进行持久化存储。例如:可以使用
sessionStroage或localStroage
去进行数据的持久化存储。
pinia-plugin-persist插件的本质也是通过 浏览器的本地存储来实现的!
二、pinia-plugin-persist使用步骤如下
1.引入库
代码如下:
//在控制台执行如下代码:npm i pinia-plugin-persist
安装结果如下图所示:
按照常理都能正常安装成功。如果没安装成功尽量去尝试切换npm源来解决问题。
2.在Pinia上注册pinia-plugin-persist插件
代码如下
import { createApp } from 'vue'import {createPinia} from 'pinia'
//1.引入piniaPersist持久化插件
import piniaPersist from 'pinia-plugin-persist'
import App from './App.vue'const pinia =createPinia()
//2.在Pinia中注册 piniaPersist
pinia.use(piniaPersist)const app =createApp(App)
app.use(pinia)
app.mount('#app')
如下图所示(操作解释)
3.声明测试store(组合式Api)
组合式声明Store文章(不会组合式Api的同学点👇🔗)
Pinia仓库声明方式
代码如下:
import { defineStore } from "pinia";
import { ref, computed } from "vue";export const sessionStore = defineStore("sessionStore",() => {//1。定义仓库:状态const sessionCountTest = ref(0);//2。定义仓库:计算属性const testComputed = computed(() => `计算属性:$$$$$----${sessionCountTest.value}----$$$$$`);//3。定义仓库:修改状态的methodsconst addSessionCountTest = () => {sessionCountTest.value++;};const subSessionCountTest = () => {sessionCountTest.value--;};// 4.导出状态return {sessionCountTest,testComputed,addSessionCountTest,subSessionCountTest,};},{persist: {enabled: true, //Store中数据持久化生效},}
);
如下图所示(代码解释):
4.测试pinia数据持久化
代码如下
1.Vue3的Templa模版代码
<template><div class="pinia-persist"><div class="pinia-persist-left">sessionStore定义的状态sessionCountTest:<div class="left">{{ sessionStoreInstance.sessionCountTest }}</div></div><div class="pinia-persist-center">sessionStore定义的计算属性sessionCountTest:<div class="center">{{ sessionStoreInstance.testComputed }}</div></div><div class="pinia-persist-right">sessionStore定义的Methods:<button@click="() => {sessionStoreInstance.addSessionCountTest();}">sessionCountTest+1</button> <button@click="() => {sessionStoreInstance.subSessionCountTest();}">sessionCountTest-1</button></div></div>
</template>
2.Vue3的script内代码
<script setup>
import { sessionStore } from "../../store/piniaPersistTest/index.js";
const sessionStoreInstance = sessionStore();
</script><style scoped>
.pinia-persist {display: flex;flex-direction: column;justify-content: center;align-items: flex-start;width: 100%;height: 230px;
}
.pinia-persist .center {margin-bottom: 20px;display: inline-block;background-color: antiquewhite;
}
.pinia-persist .left {margin-bottom: 20px;display: inline-block;background-color: rgb(213, 237, 190);
}
.pinia-persist .right {margin-top: 20px;display: inline-block;background-color: rgb(215, 239, 250);
}
</style>
测试结果如下图所示:
1.正常渲染
的结果如下图
2.修改后,并刷新页面
的结果图
三、关于pinia-plugin-persist插件的功能拓展
设置存储的key值
persist: {enabled: true, strategies: [{key: 'user',//这个key就是在本地存储中的属性storage: localStorage,},],},
修改存储形式
persist: {enabled: true, strategies: [{key: 'user',storage: localStorage, //可以选择对应的存储形式(localStorage或者sessionStroage)},],},
选择性存储对应字段(自定义状态的存储方式)
persist: {enabled: true, strategies: [{ storage: sessionStorage, paths: ['存储字段名1', '存储字段名2'] },{ storage: localStorage, paths: ['存储字段名3'] },], },
总结
本文基本就结束了,基本没有什么特别大的难度,唯一比较不容易理解的地方可能在那个组合式Api声明仓库的部分
希望可以帮助到大家!!💪💪💪
相关文章:
![](https://img-blog.csdnimg.cn/c5946b9b0ab54809918e9a2b4bdd2f2b.png)
Vue3 pinia持久化存储(组合式Api案例演示)
pinia-plugin-persist( pinia持久化插件) 本文采用的是 组合式Api的方式来做Pinia的持久化存储演示 如果对pinia的持久化还是不是很了解的👨🎓|👩🎓,可以看一下笔者的上一篇文章…...
![](https://www.ngui.cc/images/no-images.jpg)
8个你一看就觉得很棒的Vue开发技巧
1.路由参数解耦 通常在组件中使用路由参数,大多数人会做以下事情。 export default {methods: {getParamsId() {return this.$route.params.id}} }在组件中使用 $route 会导致与其相应路由的高度耦合,通过将其限制为某些 URL 来限制组件的灵活性。 正…...
![](https://img-blog.csdnimg.cn/f11db5c5bba349d18ef690b44b03fd41.png)
vue3+ts 开发效率提升
1、vite pnpm项目初始化 pnpm: 比npm或yarn快10倍 pnpm与其他包管理器(如npm和Yarn)的不同之处在于它使用一种称为“硬链接”的独特安装方法。当你使用PNPM安装一个包时,它并不会将包的文件复制到每个项目的node_modules目录中&a…...
![](https://img-blog.csdnimg.cn/6bb068d0fd2b4f06b770ac004cd3e064.png)
【数据结构与算法】队列和栈的相互实现以及循环队列
目录🌔一.用队列实现栈🌙1.题目描述🌙2.思路分析🌙3.代码实现⛈二.用栈实现队列☔1.题目描述☔2.思路分析☔3.代码实现🌈三.实现循环队列🌔一.用队列实现栈 🌙1.题目描述 我们先看一下题目链接…...
![](https://www.ngui.cc/images/no-images.jpg)
mysql连接不上问题解决
公司新搭内网测试环境,mysql远程登录问题解决 远程登录: 1 修改host, mysql> select user,host,plugin from user; ---------------------------------------------------- | user | host | plugin | ------------------------…...
![](https://img-blog.csdnimg.cn/8eb6a25e738049b199b8450834576c02.png#pic_center)
利用nginx实现动静分离的负载均衡集群实战
前言 大家好,我是沐风晓月,今天我们利用nginx来作为负载,实现两台apache服务器的动静分离集群实战; 本文收录于沐风晓月的专栏《linux基本功-系统服务实战》,更多内容可以关注我的博客: https://blog.csd…...
![](https://img-blog.csdnimg.cn/cd57a307ec014dcbb6d302b9a3fb4f16.gif)
与chatGPT神聊,引领你深入浅出系统调用
在操作系统的教学中,系统调用的作用不言而喻,但是,对系统调用常常是雾里看花,似乎明白,又难以真正的触及,即使在代码中调用了系统调用,比如调用fork()创建进程࿰…...
![](https://img-blog.csdnimg.cn/2232f84187074914b515026f43ded582.png)
自学大数据第十天~Hbase
随着数据量的增多,数据的类型也不像原来那样都是结构化数据,还有非结构化数据; Hbase时google 的bigtable的开源实现, BigtableHbase文件存储系统GFSHDFS海量数据处理MRMR协同管理服务chubbyzookeeper虽然有了HDFS和MR,但是对于数据的实时处理是比较困难的,没有办法应对数据的…...
![](https://www.ngui.cc/images/no-images.jpg)
vue更高效的工具-vite
目录 1.webpack 2.vite是什么 3.使用vite创建项目 4.最后总结 🐼webpack 简单来说,Webpack是一个打包工具。 站在2018年的角度,成为一个优秀的前端工程师,除了要会写页面样式和动态效果之外,还需要会用主流的单页…...
![](https://img-blog.csdnimg.cn/img_convert/7ba5c563346db9b049c052c81ff9be43.png)
HFish蜜罐的介绍和简单测试(一)
目录 0、什么是蜜罐 0.1、蜜罐的定义 0.2、蜜罐的优势 0.3、蜜罐与情报 1、HFish介绍 1.1、设计理念 1.2、HFish架构 1.3、HFish特点 1.4、常见蜜罐场景 2、快速部署 2.1、环境要求 2.2、联网环境,一键安装 2.3、安装效果 3、错误排查 3.1、管理端问题…...
![](https://www.ngui.cc/images/no-images.jpg)
2023面试题汇总二
一、CSS面试题 1. 清除浮动的方式有哪些? 为什么要清除浮动?因为浮动的盒子脱离标准流,如果父盒子没有设置高度的话,下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后,新加一个标签,给其设置cle…...
![](https://www.ngui.cc/images/no-images.jpg)
C# 支付宝接口在线收款退款
收款 在C#中使用支付宝在线支付功能,需要使用支付宝开放平台提供的SDK(软件开发工具包),通过SDK中提供的API(应用程序接口)实现在线支付功能。 以下是使用C#实现支付宝在线支付的大致步骤: 获…...
![](https://img-blog.csdnimg.cn/bed8f7524c4f49ce906eea80c0c6156c.png)
python例程:《企业编码生成系统》程序
目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,只需…...
![](https://www.ngui.cc/images/no-images.jpg)
基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置
目录 1.概述2. EB配置2.1 添加HwUnit2.2 AdcPrescale配置2.3 添加ADC通道2.4 添加Adc Group2.5 Adc Group配置2.5.1 AdcGroup->General2.5.2 AdcGroup->AdcNotification2.5.3 AdcGroup->AdcGroupDefinition2.5.4 AdcGroup->AdcResRegDefinition2.6 中断配置1.概述 …...
![](https://img-blog.csdnimg.cn/190976d8dc5c469c9b21e267e9cf293d.gif#pic_center)
内存操作函数
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…...
![](https://img-blog.csdnimg.cn/3819aa061ef24913a330092c2d1625bf.png)
免费搭建个人博客
免费搭建个人博客,并发布到公网 利用hexo搭建个人博客,通过gitee的pages发布到公网 1 前置准备 安装git、安装node.js(尽量选择长期支持的版本) node.js官网:https://nodejs.org/en/ git官网:https://git-scm.com/book/zh/v2 安装…...
![](https://img-blog.csdnimg.cn/aefd052778cd46a9984bee490f847034.png#pic_center)
【Vue全家桶】详解Vue Router(一)
【Vue全家桶】Vue Router详解(一) Vue系列文章目录: 内容参考链接Vue(一)【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue(二)【Vue全家桶】声明式编程、MVVMVue(三)【Vue…...
![](https://img-blog.csdnimg.cn/img_convert/38ef11086424b4a22006c33a7c66e612.jpeg)
9大 HIVE SQL 最频繁被问到的面试题
SQL是用于数据分析和数据处理的最重要的编程语言之一,因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。 SQL面试问题旨在评估应聘者的技术和解决问题的能力。因此对于应聘者来说&#x…...
![](https://img-blog.csdnimg.cn/img_convert/ca595786e857e2dd2be053b7818c5e3f.webp?x-oss-process=image/format,png)
学大数据算跟风吗?
随着互联网、物联网和人工智能等技术的不断发展,大数据技术逐渐进入人们的视野,成为一个备受关注的热点话题。那么,大数据专业好学吗?前景如何?下面我们来一起探讨一下。 一、大数据专业的学习难度 大数据技术是一种综…...
![](https://img-blog.csdnimg.cn/img_convert/383475ea6a445d217d526e6e664d7984.png)
[C#]关于ListBox的坑
在用C#写个Demo程序的时候,使用ListBox保存读取到的每行内容。然后在重复读取的时候需要清除ListBox中的内容,我看到ListBox有清除的函数:lsbFiles.Items.Clear();以为这个函数就可以解决所有的问题,但是....于是想了个方法准备一…...
![](https://img-blog.csdnimg.cn/926b3a9dffb64d8e9bc2a876073f80c2.png)
Apache POI 入门·第一话
文章目录1 摘要2 Apache POI2.1 介绍2.2 应用场景2.3 入门案例2.3.1 将数据写入Excel文件2.3.1.1 导入POI maven坐标2.3.1.2 代码开发2.3.1.3 实现效果2.3.2 读取Excel文件中的数据2.3.3 实现效果2.4 开发案例——导出运营数据Excel报表2.4.1 产品原型2.4.2 接口设计2.4.3 代码…...
![](https://img-blog.csdnimg.cn/a60bb2fbc41140e6b06552886a245782.png)
8个python自动化脚本提高打工人幸福感~比心~
人生苦短,我用Python 最近有许多打工人都找我说打工好难 每天都是执行许多重复的任务, 例如阅读新闻、发邮件、查看天气、打开书签、清理文件夹等等, 使用自动化脚本,就无需手动一次又一次地完成这些任务, 非常方便…...
![](https://csdnimg.cn/release/blog_editor_html/release2.2.4/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N2N8)
【嵌入式烧录/刷写文件】-1-详解Motorola S-record(S19/SREC/mot/SX)格式文件
目录 1 什么是Motorola S-record 2 Motorola S-record的格式 2.1 Motorola S-record的结构 2.1.1 “Record type记录类型”的说明 2.1.2 “Record length记录长度”的说明 2.1.3 如何计算“Checksum校验和” 2.2 Record order记录顺序 2.3 Text line terminator文本行终…...
![](https://img-blog.csdnimg.cn/f5a7453c91a044b5b1087c0dc5bad13f.png)
图形视图界面 图形效果
Qt的标准图形效果类: QGraphicsBlurEffect提供模糊效果QGraphicsColorizeEffect提供染色效果QGraphicsDropShadowEffect提供阴影效果QGraphicsOpacityEffect提供透明效果 QGraphicsBlurEffect(模糊效果) 模糊效果会模糊源。此效果对于减少细…...
ElementUI学习笔记
目录 一、简单介绍 二、安装 1、下载 2、引入 三、布局 1、简介 2、使用 3、好处 四、布局容器 1、常见排布 2、调整样式 五、按钮 1、简单引用 2、改变样式 3、加载中效果 六、表格 1、简单使用 2、样式修改 七、对话框 1、简单使用 2、添加自定义内容 3、…...
![](https://img-blog.csdnimg.cn/738aa14efddc4c23b28a5e0ba534548c.png)
安装KVM并创建虚拟机及基本使用
#环境说明:Centos7 环境准备: CPU开启虚拟化,给宿主机的CPU和内存分配足够多的配置 安装KVM 1.安装相关软件包 yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer 软件包简介: qemu-kvm: 为kvm提供…...
![](https://img-blog.csdnimg.cn/bed086c824e34a9c8ce6625a4706b678.png)
一种LCD屏闪问题的调试
背景 项目使用ESP32-S3 RGB接口驱动的LCD, 框架 idf-v5.0, LVGL-v7.11 显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错, 但开机一段时间后, 闪烁会明显减轻 记录 这块屏的显示驱动芯片为ST7701S, 查看芯片手册有说明特定的上…...
![](https://img-blog.csdnimg.cn/8c111f3c41ba4151a5972e2b37e678f3.jpeg#pic_center)
Java程序运行在Docker等容器环境有哪些新问题?
第30讲 | Java程序运行在Docker等容器环境有哪些新问题? 如今,Docker 等容器早已不是新生事物,正在逐步成为日常开发、部署环境的一部分。Java 能否无缝地运行在容器环境,是否符合微服务、Serverless 等新的软件架构和场景&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言面试最常问的三个关键字
文章目录前言一,static关键字的作用二,const 关键字的作用2.1, 修饰局部变量2.2,修饰指针2.3, 修饰函数形参2.4,修饰函数的返回值三,volatile关键字的作用前言 面试的时候,C语言最常…...
![](https://img-blog.csdnimg.cn/973d3325cdbe46e4ac757461172e065f.png)
【Linux】-初识Linux
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Linux】 分享:逆着光行走,任风吹雨打。 ——《起风了》 主要内容:Linux的一些最基本指令,Linux的小程序,Linux关于连…...
![](https://images2015.cnblogs.com/blog/806469/201603/806469-20160323110312683-217203123.png)
如何做增加网站留存的营销活动/seo策略主要包括
小时候对这个东西很好奇,不知道什么原理.一直觉得很好玩.现在研究了下,总结如下 软件的操作步骤很讲究,稍微不慎,则就需要重新来过 知识点: 1,掌握诺顿ghost分区为gh文件 2,学会清理至一个干净的系统 3,学会部署ghost服务器 一 通过网络批量部署系统 工具:mouse-dos https:…...
![](https://img-blog.csdnimg.cn/20200819191807904.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTk4MTM4,size_16,color_FFFFFF,t_70#pic_center)
做网站卖草坪赚钱吗/五合一网站建设
利用到Java多线程的知识,下面是我的实现代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List;/*** 假设有3个车位可以停车,写一个程序模拟多个用户开车离开、停车入库的效果。* * author qiaoao*/ public …...
![](/images/no-images.jpg)
网络广告投放渠道/临沂seo
关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material ,...
![](/images/no-images.jpg)
建设工程项目编号在什么网站查/乔拓云智能建站平台
1、生成本地服务器ssh私钥,如已存在,可忽略。$ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethe ..1、生成本地服务器ssh私钥,如已存在,可忽略。$ssh-keygen -t rsaGenerating public/priva…...
![](/images/no-images.jpg)
做网站的学校/百度邮箱登录入口
1、操作元素之属性: ①attr读:$(“selector”).attr(“属性名”);>getAttribute(“属性名”);改:$(“selector”).attr(“属性名”,值);>setAttribute(“属性名”,值)…...
![](http://images.cnitblog.com/i/607542/201406/241529330496441.png)
做电子商务网站建设工资多少/怎么做seo关键词优化
关于UIScrollView有些你很难知晓的崩溃情形 为了实现以下的功能(按钮之间的切换效果): 简短的代码如下: // // RootViewController.m // BUG // // Copyright (c) 2014年 Y.X. All rights reserved. //#import "RootViewController.h"interface RootViewControlle…...