pinia 持久化插件pinia-plugin-persistedstate 安装、使用(图文详解)

news2024/10/9 4:25:01

序:

        1、博主vue3、ts 5.x、pinia 2.1.3版本,

        2、所以如果试了不行的你看看是不是自己版本和博主的对不上

        3、其实就是省略掉localStorage 这一步,会自己写的小伙伴自己写个也是蛮快的

        4、放个中文文档==》Home | pinia-plugin-persistedstate

        5、压缩localStorage 要存的数据,我记得每个浏览器对localStorage 的存储是有限制大小的有的1M 有的6M。哪天你纯localStorage 发现没效果,或者丢失,你都不知道什么问题导致的。

一、安装依赖

 1、依赖

cnpm i pinia-plugin-persistedstate -S

2、 main.ts

import pinia from '@/stores'
app.use(pinia)

3、stores/index.ts

import { ref, computed } from 'vue'
import { createPinia,defineStore } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

export const useCounterStore = defineStore('counter', () => {
	const i=ref<number>(0);
	const edit=(val:number)=>{
		i.value=val;
	}
	const newi=computed(():number=>{
		return i.value;
	})
	// const edit=
	return{
		i,
		newi,
		edit
	}
},{persist: true});

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

 

4、 index.vue   调用 

<template>
	<div class="login">
		<!-- {{thisVal}}
		<input type="text" v-model="textVal">
		<a href="#" @click.prevent="jump">跳</a> -->
	</div>
</template>
 
<script setup lang="ts" >
	import {ref, toRefs, watch} from "vue"
	import {useCounterStore} from "@/stores";
	const {i,newi} = toRefs(useCounterStore())
	const {edit} = useCounterStore()
	edit(2)
	console.log(newi.value)
	console.log(i.value);

	//如果你不喜欢解耦,也可以写成下面
	console.log(useCounterStore().i)
	useCounterStore().edit(3)
	console.log(useCounterStore().i)
</script>
 
<style>
</style>

二、demo案例

1、这个是两个变量(别在乎细节,我纯为了演示和好理解

他是存在一个key里面的!没办法出

store.ts

import { ref, computed } from 'vue'
import { createPinia,defineStore } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

export const useCounterStore = defineStore('counter', () => {
	const i=ref<number>(0);
	const b=ref<string|null>(null);

	const edit=(val:number)=>{
		i.value=val;
	}
	const newi=computed(():number=>{
		return i.value;
	})

	const edit1=(val:string)=>{
		b.value=val;
	}
	const newi1=computed(():(string|null)=>{
		return b.value;
	})

	// const edit=
	return{
		i,
		newi,
		edit,
		b,
		newi1,
		edit1,
	}
},{persist: true});

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

index.vue

<template>
	<div class="login">
		<!-- {{thisVal}}
		<input type="text" v-model="textVal">
		<a href="#" @click.prevent="jump">跳</a> -->
	</div>
</template>
<script setup lang="ts" >
	// import {ref, toRefs, watch} from "vue"
	import {useCounterStore} from "@/stores";
	const store=useCounterStore()
	//如果你不喜欢解耦,也可以写成下面
	console.log(store.i)
	useCounterStore().edit(3)
	console.log(store.i)
	//如果你不喜欢解耦,也可以写成下面
	console.log(store.b)
	useCounterStore().edit1("xxx")
	console.log(store.b)
</script>
<style>
</style>

好,我们认下接下去要改变存储的变量key 

key: 'cyc'

 三、压缩加密

        序那边博主开头说了,每个浏览器对localStorage 是有限制大小的,你不压缩,有时候你触发了某个bug,你都不知道怎么回事,来,跟着博主操作

1、安装依赖

cnpm install zipson -S

2、配置stores/index.ts

serializer: {
			deserialize: parse,
			serialize: stringify,
		},

3、运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Verilog】汉明码

文章目录 汉明码定义校验位个数编码规则一个例子编码解码 C实现功能编写测试结果 Verilog实现.v功能代码testbench波形 汉明码 定义 在传输的信息流中插入验证码&#xff0c;侦测单一比特错误只能发现和修正一位错误&#xff0c;对于两位或两位以上的错误无法发现与修正 校验…

iSCSI共享存储搭建

1.简介 iSCSI&#xff1a;Internet Small Computer System Interface&#xff0c;Internet小型计算机系统接口&#xff0c;又称为IP-SAN&#xff0c;是一种基于因特网及SCSI-3协议下的存储技术。 2.iSCSI的作用 基于客户端和服务端架构的虚拟磁盘技术&#xff0c;服务端提供…

如何让url在新页面打开路由页面,并脱离vue-admin-template的壳,即不包裹在侧边栏和顶栏中

文章目录 一、打开的页面不包裹在侧边栏和顶栏中二、新窗口打开&#xff08;_blank&#xff09;三、最终效果 一、打开的页面不包裹在侧边栏和顶栏中 在使用vue-admin-template新建的页面中&#xff0c;打开的页面都是在框架内的内容区。 但假如我需要在左侧点击一个链接&…

面试题丨android面试问题合集

1、项目里静态分析和基于xposed动态工具介绍一下&#xff0c;如果不使用xposed&#xff0c;怎么实现动态分析工具&#xff1f; 静态分析工具是指在不运行程序的情况下&#xff0c;通过对程序文件进行源代码分析&#xff0c;从而对程序的安全性、可靠性、性能等进行分析的工具。…

HOOPS技术如何助力企业数字化转型?

近年来&#xff0c;随着科技的迅速发展&#xff0c;数字技术的应用已经深入到各个行业和领域。云计算、人工智能、物联网、大数据分析等技术的成熟和普及&#xff0c;为企业提供了丰富的数字化工具和解决方案。企业意识到利用这些技术可以提高效率、降低成本、创新业务模式&…

学习中心上新丨Python教程-Django框架快速入门到实战

腾讯云千锋教育强强联手&#xff0c;一同研发重磅推出全新课程《千锋图片云存储》Python 教程-Django 框架从入门到实战-基于腾讯云 COS Django框架实战教程发布 腾讯云开发者社区“学习中心”直达&#xff1a; 腾讯云开发者社区-腾讯云 扫码加入“腾讯云开发者社区学习中心交…

618小红书推广种草达人,品牌运营4大块是什么

当今电商行业的竞争越来越激烈&#xff0c;品牌宣推变得尤为重要。其中&#xff0c;小红书是一个备受关注的电商平台之一。618小红书推广种草达人&#xff0c;品牌运营4大块是什么&#xff0c;今天和大家一起分享下。 618期间的小红书推广落地&#xff0c;应从关键词优化、内容…

流量矩阵估计综述Traffic Matrix Estimation Techniques- A Survey on Current Practices

Paper: Traffic Matrix Estimation Techniques- A Survey on Current Practices | IEEE Conference Publication | IEEE Xplore 来源&#xff1a;2023 International Conference on Sustainable Computing and Data Communication Systems (ICSCDS) (强烈建议搭配英文原文看&…

Vue 有哪些经典面试题?

前言 下面总结了vue的一些经典的面试题&#xff0c;希望对正在找工作面试的小伙伴们提供一些帮助&#xff0c;我们废话少说直接进入整体、 简述一下什么是MVVM模型 MVVM&#xff0c;是Model-View-ViewModel的简写&#xff0c;其本质是MVC模型的升级版。其中 Model 代表数据模…

不入耳蓝牙耳机哪种好?音质好佩戴舒适的四款不入耳蓝牙耳机推荐

普通入耳式蓝牙耳机长时间佩戴会有挤压感、不适感&#xff0c;而不入耳蓝牙耳机则没有这种烦恼&#xff0c;不入耳设计&#xff0c;佩戴更稳固舒适&#xff0c;运动佩戴也不会轻易甩掉。我来推荐四款好用、不可错过的不入耳蓝牙耳机给大家&#xff0c;来看看有没有心仪那款吧。…

华为和思科如何实现双机热备?

概要&#xff1a; 在当今高度依赖网络的时代&#xff0c;网络设备的高可用性和可靠性变得尤为重要。网络设备的故障可能导致服务中断、数据丢失以及生产力下降等问题。为了应对这些挑战&#xff0c;一种常见的解决方案是使用双机热备&#xff08;High Availability, HA&…

「Win」HOOK钩子技术

✨博客主页&#xff1a;何曾参静谧的博客 &#x1f4cc;文章专栏&#xff1a;「Win」Windows程序设计 相关术语 HOOK技术&#xff1a;是一种在Windows系统中常用的技术&#xff0c;它可以截获并修改操作系统或应用程序的行为。通过使用Hook技术&#xff0c;我们可以实现以下功能…

网络编程重点

1> OIS 7层模型 TCP/IP 4层模型 5层模型 2> 传输层的功能 网络层的功能&#xff1f;以及分别是第几层 传输层&#xff1a;提供端到端的可靠传输&#xff0c;指定哪个进程哪个发送进程接收 第四层 网络层&#xff1a;寻址和路由选择 第三层 3>MAC地址&#xff1a; a. …

JAVA 巧用 Robot 类(应用于网课)

目录 前言&#xff1a;理论依据&#xff1a;现实依据&#xff1a;朴素版只能循环阅读不能翻页&#xff1a;升级版 翻页 阅读&#xff1a;如何使用&#xff1a; 前言&#xff1a; 最近发现有个阅读得读300分钟&#xff0c;懒得去找软件&#xff0c;于是就自己写了一个代码去实现…

(1Gb)S28HS01GTGZBHA030/ S28HS01GTGZBHV033/ S28HS01GTGZBHA033 FLASH - NOR闪存器件

产品简介&#xff1a; Infineon 带有HyperBus™的S26HSxT以及S26HLxT Semper™闪存是一种高性能、安全可靠的NOR闪存解决方案。 这些组件集成了关键的安全功能&#xff0c;用于汽车、工业、通信等行业的各种应用。S26HSxT和S26HLxT Semper闪存采用HyperBus接口&#xff0c;符…

仙境传说RO:添加限购物品刷新物品库存教程

仙境传说RO&#xff1a;添加限购物品刷新物品库存教程 大家好我是艾西&#xff0c;在游戏中我们会有普通的基础装备那么必然就会有到顶的套装&#xff0c;往往可能一套到顶的套装就可能霸服。那么就需要GM去做游戏的设定以及限制&#xff0c;上一篇文章中我给大家讲述了如果创…

风控系统设计

一、思路 要实现一个简单的业务风控组件,要做什么工作呢? 1.风控规则的实现 a.需要实现的规则: 自然日计数 自然小时计数 自然日自然小时计数 自然日自然小时计数 这里并不能单纯地串联两个判断,因为如果自然日的判定通过,而自然小时的判定不通过的时候,需要回退,自然日…

NetApp 混合云技术

为何选择 NetApp 的混合云 NetApp 可帮助您构建一个现代化的混合云&#xff0c;从而统一您的基础架构&#xff0c;并让您的数据可以自由流动到所需的任何位置&#xff0c;确保以数据为中心的业务能够快速应对变化&#xff0c;灵活调整方向&#xff0c;并获得竞争优势。 什么是…

界面控件DevExtreme工具栏 - 拥有全新的自适应模式/弹出窗口

本文涵盖了最近对DevExtreme JavaScript工具栏组件(v22.2)所做的更改&#xff0c;并简要描述了相关的实现细节。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET C…

对话人工智能 |新时代AI如何“落地“

前言&#xff1a; Comate代码助手推出&#xff0c;现场生成了贪吃蛇游戏&#xff0c;我们距离AI自动编程还有多远&#xff1f; 文章目录 序章正文背景基础坚实文心大模型飞浆深度学习框架 Comate的出现优质的智能助理和伙伴多场景适用优势特征Demo演示视频&#xff1a; 总结 序…