pinia 的选项式和组合式的不同写法和持久化的方法

pinia 是vue3推荐的状态管理插件,它对标的是vue2中使用的vuex

pinia 的引入方法

  1. npm 安装 pinia
  2. 在 src/store/index.js 中 创建一个pinia 的实例,并导出
    在这里插入图片描述
  3. 在项目中的 main.js 中引入 2 中的pinia 并且使用 app.use(pinia)
    main.js中
import pinia from "./store";
app.use(pinia)

以上就把pinia引入项目中使用


使用pinia创建不同的数据仓库

pinia 创建仓库的方法有两中写法, 一种是选项式的api 一种是组合式的api

选项式api 的写法

说明:action 不要使用 箭头函数, 这样会使 this 的指向错误
说明:action 不要使用 箭头函数, 这样会使 this 的指向错误
说明:action 不要使用 箭头函数, 这样会使 this 的指向错误

import {defineStore} from "pinia";
//defineStore 的第一个参数是一个唯一的id号,随便取什么都可以,但要保证唯一
//defineStore 的第二个参数可以接收两类值 ,一种是 setup函数, 别一种是 options 对象
//下面是选项式api ,也就是接收options对象的写法
export const useUserStore = defineStore("user",{state(){return {avatar:"",  //头像name:"",age:""}},getters:{getName(state){return state.name + state.age;},getAvatar(state){return state.avatar;}},//在action中我们可以修改 state 中的数据的值, 并且 action 不可以使用 箭头函数,  action 中通过this 取到 state中的值action:{async setName(){let res = await axiox("/api/getnaem");this.name = res.name;},setAge(){this.age++}}
})

组合式api 的写法

defineStore 的第二个参数是一个函数
仓库中的 属性就直接用 ref 来定义
getter 方法, 是用的 computed 方法来实理的
action 就是类似于 method
在最后要把方法和属性 return出去

import {defineStore} from "pinia";
import {ref} from "vue"export const useMemberStore = defineStore("member",()=>{const profile = ref();const getprofile = computed(()=>{return profile + "这种方式可以直接访问定义的变量, 没有this 的困扰"})const setProfile = (val)=>{profile.value = val;}const clearProfile = ()=>{profile.value = undefined}return {profile,getprofile,setProfile,clearProfile}},)

pinia 的持久化

当我们刷新页面的时候,pinia中的数据就会清空, 所以有时我们是想要把它持久化的
方法如下
安装插件

npm install pinia-plugin-persistedstate

在这里插入图片描述
同时我们使用 defineStore还有第三个参数
在这里插入图片描述

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

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

相关文章

2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛—— C 题:竞赛论文的辅助自动评阅完整思路与源代码分享

一、问题背景 近年来我国各领域各层次学科竞赛百花齐放,层出不穷,学生参与度也越来越高。随着参赛队伍的增 加,评阅论文的工作量急剧增加,这对评阅论文的人力要求也越来越大。因此引入机器辅助评阅成为竞赛主办方的现实需求。 在…

docker linux 时序不一致 timezone localtime解决方案 一秒钟

问题描述: 启动 apscheduler 报错如下: <ol class="hljs-ln" style="width:100%"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div>…

【论文笔记合集】Transformers in Time Series A Survey综述总结

本文作者&#xff1a; slience_me 文章目录 Transformers in Time Series A Survey综述总结1 Introduction2 Transformer的组成Preliminaries of the Transformer2.1 Vanilla Transformer2.2 输入编码和位置编码 Input Encoding and Positional Encoding绝对位置编码 Absolute …

Java Spring Boot搭配MyBatis的项目开发中关于账户余额并发更新

在Java Spring Boot搭配MyBatis的项目开发中&#xff0c;涉及到多个功能模块同时操作同一数据库表字段&#xff08;例如用户账户余额&#xff09;时&#xff0c;为了保证数据的一致性和防止更新过程中的错误&#xff08;例如余额错账、更新丢失等&#xff09;&#xff0c;需要采…

Dart学习相关

如果要学习flutter&#xff0c;首先要先学习dart语言&#xff0c;下面是在其他博主那里找到的文章&#xff0c;和我的总结方法很类似。并且很详细&#xff0c;我就直接拿来存储了&#xff0c;大家也可以在这里进行学习&#xff0c;强烈推荐 语言之间是相通的&#xff0c;如果你…

冷链物流行业市场规模与未来投资趋势分析

环洋市场咨询Global Info Research的冷链物流市场调研报告提供冷链物流市场的基本概况&#xff0c;包括定义&#xff0c;分类&#xff0c;应用和产业链结构&#xff0c;同时还讨论发展政策和计划以及制造流程和成本结构&#xff0c;分析冷链物流市场的发展现状与未来市场趋势&a…

LLM文本生成—解码策略(Top-k Top-p Temperature)

{"top_k": 5,"temperature": 0.8,"num_beams": 1,"top_p": 0.75,"repetition_penalty": 1.5,"max_tokens": 30000,"message": [{"content": "你好","role": "user&…

怎样合理规划游戏的玩法、关卡结构及剧情线?

规划游戏的玩法、关卡结构和剧情线是游戏设计的核心环节&#xff0c;以下是一些合理规划的方法&#xff1a; 玩法规划&#xff1a; 核心玩法确定&#xff1a; 首先明确游戏的核心机制或玩法&#xff08;例如&#xff1a;动作战斗、解谜探索、角色扮演等&#xff09;&#xff0…

kubeadm部署Kubernetes(k8s) 1.23.0多主高可用集群

Kubernetes介绍 kubernetes(k8s)是2015年由Google公司基于Go语言编写的一款开源的容器集群编排系统,用于自动化容器的部署、扩缩容和管理; kubernetes(k8s)是基于Google内部的Borg系统的特征开发的一个版本,集成了Borg系统大部分优势; 官方地址:https://Kubernetes…

CentOS7 安装ErLang语言环境

在线搜索适合当前linux系统的epel在线安装。 yum -y install epel-release下载erlang-solutions安装包。 wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm离线安装erlang-solutions安装包。 rpm -Uvh erlang-solutions-1.0-1.noarch.rpm在线…

【C语言】字符串函数下

&#x1f451;个人主页&#xff1a;啊Q闻 &#x1f387;收录专栏&#xff1a;《C语言》 &#x1f389;道阻且长&#xff0c;行则将至 前言 这篇博客是字符串函数下篇&#xff0c;主要是关于长度受限制的字符串函数&#xff08;strncpy,strncat,strncmp)的使用…

【LabVIEW FPGA入门】FPGA中的数据流

LabVIEW 以数据流方式执行代码。 当节点的所有输入上都存在数据时&#xff0c;该节点就会执行。 当节点完成执行时&#xff0c;节点的输出将数据传递到下游的下一个节点。 LabVIEW FPGA 使用三个组件来维护这种数据流范例。 节点具有与其功能相对应的逻辑 同步&#xff0c;该组…

Python数学建模-2.5Pandas库介绍

2.5.1Pandas基本操作 Pandas是一个强大的Python数据分析库&#xff0c;它提供了快速、灵活且富有表现力的数据结构&#xff0c;设计初衷是为了处理关系型或标记型数据。Pandas的基本操作涵盖了数据的读取、处理、筛选、排序、分组、合并以及可视化等多个方面。 以下是一些Pan…

区域和检索-数组不可变(Lc303)——前缀和

给定一个整数数组 nums&#xff0c;处理以下类型的多个查询: 计算索引 left 和 right &#xff08;包含 left 和 right&#xff09;之间的 nums 元素的 和 &#xff0c;其中 left < right 实现 NumArray 类&#xff1a; NumArray(int[] nums) 使用数组 nums 初始化对象i…

【SpringBoot】解决数据库时间和返回时间格式不一致的问题

先看问题: 类中的属性中有Date类型的属性 数据库表中的数据: 可以看到也没问题 但是在返回实体类对象时,数据类型是这样的: 虽然数据是成功返回了,但这显然不是我们想要的结果.也不符合我们的日常使用习惯. 这个问题虽然前端,后端都能处理,但最好还是后端来进行处理.前端主…

22款Visual Studio Code实用插件推荐

前言 Visual Studio Code是一个轻量级但功能强大的源代码编辑器&#xff0c;轻量级指的是下载下来的Visual Studio Code其实就是一个简单的编辑器&#xff0c;强大指的是支持多种语言的环境插件拓展&#xff0c;也正是因为这种支持插件式安装环境开发让Visual Studio Code成为…

【数据结构】深入理解AVL树:实现和应用

AVL树是一种自平衡的二叉搜索树&#xff0c;它能够保持良好的平衡性质&#xff0c;使得在最坏情况下的时间复杂度也能保持在对数级别。本文将深入介绍AVL树的原理、实现和应用&#xff0c;并通过示例代码演示其基本操作。 文章目录 什么是AVL树&#xff1f;AVL树的实现在AVL树…

Vue工程化基础

一Ajax 1.1Ajax概述&#xff1a; 异步与同步 繁琐被淘汰了。 二Axios2 前后端混合开发&#xff1a; 前后端分离开发&#xff1a; YAPI 三前端开发工程化 四Vue脚手架 项目的认识 改变端口号 五Vue开发流程&#xff1a; 六Element组件 6.1快速入门 下载> npm install e…

阿里云数据库优惠价格99元1年起MySQL/SQL Server/PostgreSQL/Redis/MongoDB/MairaDB/ClickHouse

2024年阿里云数据库价格查询&#xff0c;云数据库优惠活动MySQL版2核2GB 50GB配置99元一年&#xff0c;续费不涨价&#xff0c;续费也是99元1年&#xff0c;云数据库MySQL基础系列经济版 2核4GB 100GB配置227元1年&#xff0c;RDS SQL Server云数据库2核4G配置299元1年&#xf…

自学rabbitmq入门到精通

交换机的fault &#xff08;发布与订阅模式&#xff09; 因为消息是由生产者发送给excahnge&#xff0c;exchange发送给队列&#xff0c; 然后由队列发送给消费者的。 展示使用图形化界面使用fanout模式。 创建交换机 然后创建三个队列&#xff0c;绑定对应的交换机&#xff…