vue3+ts pinia存储及持久化

index.ts
需要安装pinia-plugin-persist

npm  i   pinia-plugin-persist  -S
import  { createPinia}  from  "pinia"
// 引入批量的pinia持久存储插件
import  piniaPluginPersist from 'pinia-plugin-persist'
const  store=createPinia();
store.use(piniaPluginPersist)
export default store;

user.ts

 import  {defineStore}  from  "pinia"export  const  useStore=defineStore('storeId',
{state:()=>{return{name:"zhangsan",num:0,age:20}},getters:{changeNum(){console.log("getters");return  this.num+1000;}},actions:{upNum(val){this.num+=val;}},// 开启数据缓存persist:{enabled:true,strategies:[{key:'my_user',storage:localStorage,paths:["age"]}]}
})

main.ts:

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import  router  from "./router"
// import store from "./store"
import store from "./piniaStore"
const app = createApp(App);
app.use(router);
app.use(store);
app.mount('#app')

在页面中使用:

<template><div>name: {{ name }} <br />num: {{ num }}</div><p>changeNum:{{ changeNum }}</p><button @click="updateName">修改姓名</button><button @click="addBtn">+操作</button>
</template><script setup lang="ts">
import { storeToRefs } from "pinia";
import { useStore } from "@/piniaStore/user";
const store = useStore();
console.log(store);
let { num, name, changeNum } = storeToRefs(store);const updateName = () => {// name.value = "李四";// 批量修改store.$patch((state) => {state.num++;state.name = "赵四";});
};const addBtn = () => {store.upNum(200);
};
defineExpose({num,name,changeNum,
});
</script><style></style>

效果图:

在这里插入图片描述

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

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

相关文章

【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手

TCP三次握手在Wireshark数据包中是如何体现的&#xff1f;在此之前&#xff0c;先熟悉TCP三次握手的流程。 TCP三次握手流程 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的传输层协议。在建立 TCP 连接时&#xff0c;需要进行三次握手&#xff0c;防止因为…

【自然语言处理】用Python从文本中删除个人信息-第二部分

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

uni-app pages.json之globalStyle全局页面样式配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

STM32软硬件CRC测速对比

硬件CRC配置 以及软硬件CRC速度对比 使用CUBEMX配置默认使用的是CRC32&#xff0c;从库中可以看出这一点 HAL库提供了以下两个计算函数 HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength); 这个函数用于在已有的CRC校验结果的基础上累积…

听GPT 讲Rust源代码--src/tools(26)

File: rust/src/tools/clippy/clippy_lints/src/methods/iter_out_of_bounds.rs 在Rust源代码中&#xff0c;iter_out_of_bounds.rs文件是Clippy lints库的一部分&#xff0c;该库用于静态代码分析&#xff0c;用于检测Rust代码中的潜在问题和错误。iter_out_of_bounds.rs文件中…

第三天:对ThreadLocal理解

ThreadLocal是什么&#xff1f; ThreadLocal&#xff0c;也就是线程本地变量。如果你创建了一个 ThreadLocal变量&#xff0c;那么访问这个变量的每个线程都会有这个变量的一个本地副本&#xff0c;多个线程操作这个变量的时候&#xff0c;实际是操作自己本地内存里面的变量&a…

5G NTN与“手机直连卫星”快速原型

5G非地面网络(5G NTN) 5G非地面网络(Non-Terrestrial Network, NTN)是一项旨在使5G用户终端(5G UE)连接到 位于卫星上的非地面基站(5G gNB)的技术NTN是3GPP R17版本的重要功能&#xff0c;在5G-Advanced中持续演进&#xff0c;已成为3GPP Release 18 工作计划中的重要组成部分…

Wi-Fi、蓝牙、ZigBee等多类型无线连接方式的安全物联网网关设计

随着物联网和云计算技术的飞速发展.物联网终端的数量越来越多&#xff0c;终端的连接方式也更趋多样化&#xff0c;比如 Wi-Fi蓝牙和 ZigBee 等。现有的物联网网关大多仅支持一种或者几种终端的接人方式。无法满足终端异构性的需求。同时&#xff0c;现有的物联网网关与终端设备…

php 不加后缀访问

实现不带后缀访问php文件的方法&#xff1a;首先在htaccess文件中加入内容“RewriteRule ^(api/token) token.php [L]”&#xff1b;然后通过根目录下的“token.php”来接受“api/token”&#xff1b;最后修改配置文件。 考虑的做法有&#xff1a; HTTP重写技术&#xff0c;让…

MySQL数据库MySQL事务与存储引擎

目录 一、MySQL事务 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;ACID特性 1.原子性 2.一致性 3.隔离性 4.持久性 &#xff08;三&#xff09;隔离级别 1.可能出现的一致性问题 &#xff08;1&#xff09;脏读 &#xff08;2&#xff09;不可重复读 …

微短剧,会成为长视频的“救命稻草”吗?

职场社畜秒变霸道总裁&#xff0c;普通女孩穿越成为艳丽皇妃.......这样“狗血”的微短剧&#xff0c;最近不仅在国内各大视频平台上异常火爆&#xff0c;而且还直接火出了国外。 所谓微短剧&#xff0c;就是单集时长从几十秒到十几分钟的剧集&#xff0c;有着相对明确的主题和…

基于 OV2640 的以太网 RGMII 图像传输系统设计

文章目录 前言一、UDP 协议的特点二、图像数据编码原理三、系统总体设计四、图像编码模块介绍4.1、图像编码模块作用4.2、图像编码模块功能实现4.3、仿真五、其他涉及模块说明六、顶层模块七、下载与验证前言 本节主要讲述了一种对数据以行为单位的编码方法。该方法采用摄像头…

树莓派Pi4B简介

树莓派是什么&#xff1f;Raspberry Pi(中文名为“树莓派”,简写为RPi&#xff0c;或者RasPi/RPi)是为学生计算机编程教育而设计&#xff0c;只有信用卡大小的卡片式电脑&#xff0c;其系统基于Linux。 树莓派4B与树莓派3B/3B参数对比&#xff1a; 具体的实物图如下&#xff1a…

PDF控件Spire.PDF for .NET【安全】演示:在 PDF 中添加或删除数字签名

随着 PDF 文档在商业中越来越流行&#xff0c;确保其真实性已成为一个关键问题。使用基于证书的签名对 PDF 进行签名可以保护内容&#xff0c;还可以让其他人知道谁签署或批准了该文档。在本文中&#xff0c;您将了解如何使用不可见或可见签名对 PDF 进行数字签名&#xff0c;以…

2023年教程汇总 | 《小杜的生信笔记》

2023年总结 2023年即将结束&#xff0c;我们即将迎来2024年。2023年&#xff0c;我们做了什么呢&#xff1f;&#xff1f;这个是个值得深思的问题…? 12月份是个快乐且痛苦时间节点。前一段时间&#xff0c;单位需要提交2023年工作总结&#xff0c;真的是憋了好久才可以下笔…

国产编程语言MoonBit添加问号操作符

MoonBit更新 01. 添加内置类型 Result enum Result[T, E] {Ok(T)Err(E) }02. 添加问号操作符 新增了问号操作符&#xff0c;用于简化错误处理&#xff1a; fn may_fail() -> Option[Int] { ... }fn compose_may_fail() -> Option[String] {let x may_fail()?let y …

ioDraw AI:思维导图、流程图、序列图、类图、饼图,一应俱全

前言 在信息爆炸的时代&#xff0c;我们每天接收着大量的信息&#xff0c;如何高效地整理和呈现这些信息成为了一项重要的挑战。思维导图作为一种可视化思维工具&#xff0c;能够帮助我们快速构建和整理复杂的信息结构&#xff0c;便于我们理解和记忆。ioDraw AI绘图工具正是基…

RTOS_WDS

2023/12/25重启韦东山老师RTO 韦东山freeRTOS快速入门视频教程 P2 2-1堆的概念 堆 char heap_buf[1024]; int pos 0;void *my_malloc(int size) {int old_pos pos;pos size;return &heap_buf[old_pos]; }void my_free(void *buf) {/* err */ }int main(void) {char ch…

react+koa全栈开发 以及 部署流程

前端开发后端开发部署 前端开发 前端使用react、sass、TS、vite、pnpm进行开发&#xff0c;太详细的这里就不展开说了项目创建可以参考我的另外一篇文章 优雅地创建一个前端项目 后端开发 后端使用node&#xff0c;使用koa框架进行开发&#xff0c;数据库我使用的是一个mys…

Android studio 使用greenDao根据实体类生成dao类

1.遇到的问题 使用android studio根据实体类生成dao其实也很简单&#xff0c;你只要实现 Parcelable Entity public class ConfigDataModel implements Parcelable {Id(autoincrement true)private Long id null; } 2.使用自带的方法生成 使用build-->make Project生成 …