Pinia学习-存储数据、修改数据以及持久化实现

news2025/1/18 9:47:36

Pinia是什么?

Pinia 是 Vue 的存储库,实现全局变量的定义

这里定义的变量信息,任何页面都可以使用,代替原来的VueX

官网:https://pinia.web3doc.top/

4.2 Pinia存储数据

4.2.1获取存储数据

实现步骤:
1.依赖
npm install pinia
2.在main.js实现配置
3.实现js在src创建文件夹 pinia 内部创建js文件 index.js
src/pinia/index.js
4.使用views/learn.vue

具体实现步骤:
1.依赖
npm install pinia
2.在main.js实现配置
在这里插入图片描述

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
//导入路由
import { createRouter } from "./router/index.js"

//导入pinia
import { createPinia } from 'pinia'
//实例化pinia
const pinia = createPinia()

//配置路由
createApp(App).use(createRouter()).use(pinia).mount('#app')

3.实现js在src创建文件夹 pinia 内部创建js文件 index.js
src/pinia/index.js

import { defineStore } from 'pinia'

export const useStore = defineStore('store', {
    state: () => {//定义需要共享的变量
        return {
            author:'郑' //定义全局变量
        }
    }
})

4.使用views/learn.vue
在这里插入图片描述

<template>
  <div>
    <h1>动态路由</h1>
    <button @click="tz">点击跳转</button>
  </div>
<!-- 获取pinia中的值 -->
  <h1>全局变量:{{store.author}}</h1>
</template>

<!-- Vue3的写法 setup -->
<script setup>
//导入
import {useRouter} from 'vue-router'
//导入
import {useStore} from "../pinia/index.js"
// 声明变量
const router = useRouter()
//声明变量
const store=useStore();
const tz = () => {
  //基于路由 实现页面跳转 动态路由
  router.push("/study");
}

</script>

<style scoped>

</style>

4.2.2修改存储数据’

步骤
1.pinia/index.js
2.views/learn.vue

具体实现
1.pinia/index.js

在这里插入图片描述

import { defineStore } from 'pinia'

export const useStore = defineStore('store', {
    state: () => {//定义需要共享的变量
        return {
            author:'郑' //定义全局变量
        }
    },
    actions: {
        //定义
        setAuthor(author){ //定义函数 修改变量的值
            this.author=author;
        }
    }
})

2.views/learn.vue
在这里插入图片描述

<template>
  <div>
    <h1>动态路由</h1>
    <button @click="tz">点击跳转</button>
  </div>
  <div>
    <!-- 获取pinia中的值 -->
    <h1>全局变量:{{store.author}}</h1>
    <button @click="set1"></button>
  </div>
  <div>
    <h1>修改pinia的值</h1>
    <input v-model="a">
    <button @click="set1">修改作者</button>
  </div>
</template>

<!-- Vue3的写法 setup -->
<script setup>
//导入
import {ref} from "vue";
import {useRouter} from 'vue-router'
//导入
import {useStore} from "../pinia/index.js"
// 声明变量
const router = useRouter()
//声明变量
const store=useStore();
const tz = () => {
  //基于路由 实现页面跳转 动态路由
  router.push("/study");
}

const a = ref("");

const set1 = () => {
  //修改 pinia中的值
  store.setAuthor(a.value)
}

</script>

<style scoped>

</style>

4.2.3 Pinia实现持久化

Pinia默认数据存储在内存中,一旦刷新浏览器,数据就没有了,所以可以配置持久化

持久化插件:pinia-plugin-persist

实现步骤:
1.依赖 npm install pinia-plugin-persist
2.实现配置 main.js
3.在pinia的js中开启持久化,在store/index.js中
4.测试刷新后数据是否存在

具体实现:
1.依赖
npm install pinia-plugin-persist
2.实现配置 main.js
在这里插入图片描述

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
//导入路由
import { createRouter } from "./router/index.js"

//导入pinia
import { createPinia } from 'pinia'
//导入pinia 持久化 插件
import piniaPersist from 'pinia-plugin-persist'
//实例化pinia 并设置持久化
const pinia = createPinia()
pinia.use(piniaPersist)

//配置路由
createApp(App).use(createRouter()).use(pinia).mount('#app')

3.在pinia的js中开启持久化,在pinia/index.js中
注意位置,是在最后
在这里插入图片描述

import { defineStore } from 'pinia'

export const useStore = defineStore('store', {
    state: () => {//定义需要共享的变量
        return {
            author:'郑' //定义全局变量
        }
    },
    actions: {
        //定义
        setAuthor(author){ //定义函数 修改变量的值
            this.author=author;
        }
    },persist: {
        enabled: true // true 表示开启持久化保存
    }
})

4.测试刷新后数据是否存在

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

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

相关文章

比例夹管阀及其高精度压力和流量控制解决方案

摘要&#xff1a;针对卫生和无菌流体系统中柔性管路内的压力和流量控制&#xff0c;本文介绍了采用电控夹管阀的高精度控制解决方案。解决方案基于反馈控制原理&#xff0c;采用压力传感器或流量传感器进行测量并反馈给程序控制器&#xff0c;控制器驱动夹管阀来改变柔性管路的…

双目视觉实战--单视图测量方法

目录 一.简介 二、2D变换 1. 等距变换&#xff08;欧式变换&#xff09; 2. 相似变换 3. 仿射变换 4. 射影变换&#xff08;透视变换&#xff09; 5. 结论 三、影消点与影消线 1. 平面上的线 2. 直线的交点 3. 2D无穷远点 4. 无穷远直线 5. 无穷远点的透视变换与仿…

Yakit单兵作战神器简单使用

文章目录 免配置抓包破解编码数据包DNSLog 官网下载地址&#xff1a;https://yaklang.com/ 使用文档&#xff1a;https://www.yaklang.com/products/intro 免配置抓包 会启动一个和BurpSuite一样的内置浏览器 访问地址&#xff0c;就会拦截到数据包 也可以在history里查看 破解…

屏幕录制视频编辑软件 Camtasia 2023 mac中文版软件功能

Camtasia 2023 mac是一款功能强大的屏幕录制和视频编辑软件&#xff0c;可以用于制作教育课程、演示文稿、培训视频等。它具有一系列工具和功能&#xff0c;包括屏幕录制、视频编辑、音频编辑、字幕、特效等&#xff0c;使用户可以轻松地创建高质量的视频内容。 Camtasia2023的…

DH48WK 温控器参数设置

北京东昊力伟科技有限责任公司 温控仪、温度控制器 产品特点&#xff1a; 可外接温度传感器Pt100、Cu50、K、E、J、N、T、R、S、B兼容输入&#xff1b;PID控制输出、位式控制输出、继电器报警输出&#xff1b;控温能满足设定温度值的0.2℃&#xff1b;既可用于加热控制、也可…

VR数字政务为我们带来了哪些便捷之处?

每每在政务大厅排队的时候&#xff0c;总是在想未来政务服务会变成什么样子呢&#xff1f;会不会变得更加便捷呢&#xff1f;今天我们就来看看VR数字政务&#xff0c;能够为我们带来哪些便捷之处吧&#xff01; 传统的政务服务中&#xff0c;不仅办事流程复杂&#xff0c;而且每…

5.2 加载矢量图层(delimitedtext,spatialite,wfs,memory)

文章目录 前言加载矢量(vector)图层delimitedtextQGis导入CSV代码导入 SpatiaLite data provider (spatialite)QgsDataSourceUriQGis导入spatialite代码导入 Web服务WFS (web feature service) data provider (wfs)QGis添加图层代码添加 Memory data providerType (memory)QGis…

腾讯云服务器带宽下载速度快吗?多线BGP和CN2高速网络

腾讯云服务器公网带宽下载速度计算&#xff0c;1M公网带宽下载速度是128KB/秒&#xff0c;5M带宽下载速度是512KB/s&#xff0c;腾讯云10M带宽下载速度是1.25M/秒&#xff0c;腾讯云百科txybk.com来详细说下腾讯云服务器不同公网带宽实际下载速度以及对应的上传速度对照表&…

dig 简明教程

哈喽大家好&#xff0c;我是咸鱼 不知道大家在日常学习或者工作当中用 dig 命令多不多 dig 是 Domain Information Groper 的缩写&#xff0c;对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说&#xff0c;它是一个非常常见且有用的工具。 无论是简单的 DNS 解析查找还…

第三章 数据结构与算法——栈和

栈和队列被称为插入和删除受限制的线性表。 &#x1f341;一、栈的基本概念 &#x1f315;&#xff08;一&#xff09;栈的概念&#xff1a; ①&#xff1a;栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈…

四川竹哲电子商务有限公司让抖音带货更轻松

随着电子商务的飞速发展&#xff0c;带货直播成为了新的行业热点。四川竹哲电子商务有限公司&#xff0c;一家在电子商务领域有着深厚实力和丰富经验的企业&#xff0c;正以其独特的视角和策略&#xff0c;引领着抖音带货的发展趋势&#xff0c;让这个新型商业模式更加轻松、高…

C++初阶(三)

文章目录 一、auto关键字(C11)1、auto简介2、auto使用规则1、 auto与指针和引用结合起来使用2、 在同一行定义多个变量 3、auto不能推导的场景1、 auto不能作为函数的参数2、 auto不能直接用来声明数组3、特性总结 二、基于范围的for循环(C11)1、范围for的语法2、 范围for的使用…

基于springboot校园二手书交易管理系统

功能如下图所示 摘要 校园二手书交易管理系统是一款基于Spring Boot框架的应用程序&#xff0c;旨在便捷管理大学校园内的二手书籍交易。该系统致力于为学生和教职工提供一个高效、便捷的平台&#xff0c;以便买卖二手书籍&#xff0c;从而减轻经济压力&#xff0c;减少资源浪费…

Linux高性能服务器编程 学习笔记 第十七章 系统监测工具

tcpdump是一款经典的抓包工具&#xff0c;即使今天我们已经有了像Wireshark这样更易于使用和掌握的抓包工具&#xff0c;tcpdump仍是网络程序员的必备利器。 tcpdump提供了一些选项用以过滤数据包或定制输出格式&#xff0c;常见的选项如下&#xff1a; 1.-n&#xff1a;使用I…

ROS 示例

参考链接1 话题中的Publisher与Subscriber 例1&#xff1a; 发送和接收 hello, world 1、创建工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace创建完成后&#xff0c;可以在工作空间的根目录下使用catkin_make命令编译整个工作空间&#xff1…

nfs+rpcbind实现服务器之间的文件共享

NFS简介 NFS服务及Network File System&#xff0c;用于在网络上共享存储&#xff0c;分为2,3,4三个版本&#xff0c;最新为4.1版本。NFS基于RPC协议&#xff0c;RPC为Remote Procedure Call的简写。 应用场景&#xff1a;用于A,B,C三台机器上需要保证被访问到的文件是一样…

用Bing绘制「V我50」漫画;GPT-5业内交流笔记;LLM大佬的跳槽建议;Stable Diffusion生态全盘点第一课 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 美国升级AI芯片出口禁令&#xff0c;13家中国GPU企业被列入实体清单 nytimes.com/2023/10/05/technology/chip-makers-china-lobbying…

QT自定义空间之软键盘

QT自定义空间之软键盘 1.功能列表2.效果2.1 中文键盘&汉字输入2.2 英文输入法2.3 数字键盘2.4 数据键盘效果 3.部分代码3.1 汉字输入3.2 切换数字键盘3.3 键盘显示&隐藏3.4 控件提升3.5样式设置3.6 使用QLineEditAllKeyBoard 控件 1.功能列表 支持中文输入法支持引文输…

jdk7新增时间类Date,SimpleDateFormat,Calendar

Date //需求1 打印时间远点开始一年后的时间extracted();//需求2 定义任意两个date对象 比较那个时间在前 哪个在后Random rnew Random();Date date1new Date(Math.abs(r.nextInt()));Date date2new Date(Math.abs(r.nextInt()));System.out.println(date1);System.out.printl…

在迪拜举行的 GITEX GLOBAL 2023 IT 展览会上,Positive Technologies 荣获两项大奖!

&#x1f3c6; 在迪拜举行的 GITEX GLOBAL 2023 IT 展览会上&#xff0c;Positive Technologies 荣获两项大奖。这两个奖项都是影响力网络安全领域的最佳供应商。 &#x1f3f5; Future Enterprise Awards 2023 是该地区 IT 行业最重要的奖项之一。该奖项每年颁发给对信息技术…