Vue3 状态管理 - Pinia,超详细讲解!

news2024/11/26 14:39:13

前言

哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享【Vue3 状态管理 - Pinia】,超详细讲解!并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎收藏+关注哦 💕

🌈🌈文章目录

前言:

1. Pinia介绍

2. 手动添加Pinia到Vue项目

1.使用 Vite 创建一个空的 Vue3项目

2.按照官方文档安装 pinia 到项目中

3. Pinia基础使用

1.定义store

2.组件使用store

4. getters实现

5. action异步实现

6. storeToRefs工具函数

7. Pinia的调试

8. Pinia持久化插件

1.安装插件 pinia-plugin-persistedstate

2.使用 main.js

3.配置 store/counter.js

1. Pinia介绍

Pinia 是 Vue 的专属的最新状态管理库 ,是 Vuex 状态管理工具的替代品

2. 手动添加Pinia到Vue项目

后面在实际开发项目的时候,Pinia可以在项目创建时自动添加,现在我们初次学习,从零开始:

1.使用 Vite 创建一个空的 Vue3项目

  npm init vite@latest

2.按照官方文档安装 pinia 到项目中

3. Pinia基础使用

1.定义store

2.组件使用store

4. getters实现

Pinia中的 getters 直接使用 computed函数 进行模拟, 组件中需要把 getters return出去

5. action异步实现

方式:异步action函数的写法和组件中获取异步数据的写法完全一致

  • 接口地址:http://geek.itheima.net/v1_0/channels

  • 请求方式:get

  • 请求参数:无

6. storeToRefs工具函数

使用storeToRefs函数可以辅助保持数据(state + getter)的响应式解构

7. Pinia的调试

Vue官方的 dev-tools 调试工具 对 Pinia直接支持,可以直接进行调试

8. Pinia持久化插件

官方文档:Home | pinia-plugin-persistedstate

1.安装插件 pinia-plugin-persistedstate

  
  npm i pinia-plugin-persistedstate

2.使用 main.js

  import persist from 'pinia-plugin-persistedstate'
  ...
  app.use(createPinia().use(persist))

3.配置 store/counter.js

 import { defineStore } from 'pinia'
  import { computed, ref } from 'vue'
  ​
  export const useCounterStore = defineStore('counter', () => {
    ...
    return {
      count,
      doubleCount,
      increment
    }
  }, {
    persist: true
  })

以上就是pinia的核心知识和重点配置啦,如果小伙伴们还想了解其他配置,推荐pinia官网文档http://pinia.cc/docs/introduction.html

🚀 个人简介:6年开发经验,现任职某国企前端负责人,分享前端相关技术与工作常见问题~
💟 作    者:前端菜鸟的自我修养❣️
📝 专    栏:vue从基础到起飞
🌈 若有帮助,还请 关注➕点赞➕收藏  ,不行的话我再努努力💪💪💪  

 更多专栏订阅推荐:

👍 前端工程搭建
💕 JavaScript深入研究

📝 前端工作常见问题汇总

✍️ GIS地图与大数据可视化

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

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

相关文章

AxProtector CTP荣膺2024年度德国创新奖,见证软件安全领域新突破

AxProtector CTP通过将混淆技术直接集成到编译过程中,引入了一种突破性的软件安全保护方法,有效对抗逆向工程。适用于Windows、Linux和macOS,确保在各种操作系统上的广泛应用。结合了强大的知识产权保护和灵活的许可功能,包括模块…

鸿蒙HarmonyOS DevEco Studio 安装配置

一、安装后配置 文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/software_install-0000001053582415-V2 Node.js版本要求为v14.19.1及以上,且低于v17.0.0;对应的npm版本要求为6.14.16及以上,可以选择本…

k8s学习--chart包开发(创建chart包)

文章目录 chart包应用环境一、安装helm客户端工具二、chart包目录结构三、创建不可配置的chart1.创建目录和chart.yaml2.创建deployment.yaml3.创建service.yaml4.使用chart安装应用5.查看和验证 四、创建可配置的Chart1.官方的预定义变量2.新增values.yaml文件3.配置deploy引用…

swagger手动添加cookies信息、浏览器中手动添加cookies信息

在实际项目使用中,我们可能需要把登录token放到cookies中,请求时从cookies中获取token值,以此校验用户登录信息,以下整理一下怎么在cookies中手动添加数据。 操作步骤如下: (1):F12打开调试工具&#xff…

实验13 BGP路径选择

实验13 BGP路径选择 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 与域内路由不同,域间路由更加注重策略,而不是技术。在域内进行选路,可以使用路由算法计算出到达目的子网的最短路径;而在…

【ajax基础01】ajax简介

一:ajax简介 1 什么是ajax AJAX(Asynchronous JavaScript And XML )是一种在 Web 应用中通过异步发送 HTTP 请求向服务器获取内容,并使用这些新内容更新页面中相关的部分,而无需重新加载整个页面的 Web 开发技术。这可…

FuTalk设计周刊-Vol.035

🔥AI漫谈 热点捕手 1、Google 史上最强大模型 Gemini,真的全面「碾压」GPT-4 吗? 谷歌的类 ChatGPT 应用 Bard 已经升级到了 Gemini Pro 版本,实现了更为高级的推理、规划、理解等能力,同时继续保持免费。谷歌预计在…

Mongodb介绍及window环境安装

本文主要内容为nosql数据库-MongoDB介绍及window环境安装。 目录 什么是MongoDB? 主要特点 MongoDB 与Mysql对应 安装MongoDB 下载MongoDB 自定义安装 创建目录 配置环境变量 配置MongoDB服务 服务改为手动 启动与关闭 安装MongoDB Shell 下载安装包 …

蓝卓创始人褚健:工厂操作系统+APP,加速工业数字化转型

如何让众多的中小企业通过低成本的方式实现收益,享受到工业互联网、数字化转型带来的效益,是解决中小企业数字化转型难的核心问题。 中小企业规模庞大,数字化转型压力巨大 褚健表示,中国拥有最庞大的工业企业集群,全国…

UltraEdit电脑版下载_UltraEdit文本编辑器中文版下载_UltraEdit 2024最新版软件安装包下载附加详细安装步骤

UltraEdit中文版是一款功能强大的文本编辑器,几乎可以满足你所有的工作需求。使用UltraEdit文本编辑器可以操作更多记事本所不能处理的工作。如:基本的编辑文本、十六进制、ASCLL码、语法加亮、代码折叠、代码单词拼写检查等、C 及 VB 指令突显等,附有 H…

EdgeOne 边缘函数—如何动态改写 M3U8 媒体文件

目前,各大主流厂商都推出了自己的边缘 Serverless 服务,如 CloudFlare Workers、 Vercel EdgeRuntime 等;腾讯云 EdgeOne 边缘函数提供了部署在边缘节点的 Serverless 代码执行环境,只需编写业务函数代码并设置触发规则&#xff0…

解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存

解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或id…

k8s删除状态为 Terminating 的pod

卸载calico pod时候pod资源状态会卡在terminating,这时候需要手动进行删除 使用以下命令即可 kubectl delete pod podName -n NAMESPACE --force --grace-period0记住一定要加命名空间,不然会报错没有找到

AI发展面临的问题? —— AI对创造的重新定义

一、AI的问题描述 AI与数据安全问题:随着AI技术的发展和应用,数据安全问题日益突出。AI模型训练依赖于大量数据,而这些数据中可能包含个人隐私、商业秘密等敏感信息。如果数据在采集、存储、使用过程中处理不当,可能导致数据泄露或…

测试单选框

单选按钮:用于在一组互相排斥的选项中选择其中一项; 由一个圆圈和紧随其后的文本标题组成,当它被选中时,圆圈中就标上一个黑点。 通常将一组单选按钮放在一个组框控件中,在一组单选按钮中,第一个(Tab键顺序…

可燃气体报警器:户外工地安全预警先锋,定期检定保障安全无忧

在现代化的建设进程中,户外工地作为城市发展的重要推动力,其安全问题一直备受关注。 工地现场往往涉及多种易燃易爆气体,一旦发生泄漏,后果不堪设想。因此,如何有效预警并防范可燃气体泄露,成为户外工地安…

【系统架构设计师】二、操作系统知识(操作系统概述|进程管理)

目录 一、操作系统概述 1.1 操作系统定义 1.2 操作系统的功能 1.3 操作系统的分类 1.4 嵌入式操作系统主要特点 二、进程管理 2.1 进程的组成与状态 2.2 前趋图 2.3 进程资源图 2.4 进程调度 2.5进程调度算法 2.6 死锁 2.7 进程与线程 2.7.1 进程 2.7.2 线程 2…

双指针练习:有效三角形的个数

题目链接:611.有效三角形的个数 题目描述: 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 解法一(暴力求解)(会超时): 算法思路: 三层…

视频汇聚安防综合管理系统EasyCVR平台GB28181设备注册未上线的原因排查与解决

视频汇聚安防综合管理平台EasyCVR视频监控系统基于云边端架构,可支持海量视频汇聚集中管理,能提供视频监控直播、云端录像、云存储、录像检索与回看、告警(协议告警/智能告警/1400视图库告警)、平台级联、AI智能分析接入等视频能力…

【学习Docker】

学习Docker可以分为几个步骤和阶段,以下是一个建议的学习路径,适合初学者到进阶用户: ### 1. 理解基本概念 - **容器化与虚拟化**:了解容器化与传统虚拟化之间的区别,容器的轻量级和效率。 - **Docker组件**&#xff…