快速上手 Pinia!Vue3 极简状态管理使用教程
以龙息淬炼代码在时光灰烬中重铸技术星河 欢迎来到晷龙烬的博客小窝✨ 这里记录技术学习点滴分享实用技巧偶尔聊聊奇思妙想原创内容✍️转载请注明出处感谢支持❤️请尊重原创 欢迎在评论区交流引言在Vue3项目开发中全局状态管理是必不可少的核心能力常用于处理用户信息、全局配置、跨组件数据共享等场景。相较于Vue2配套的VuexPinia是Vue3官方推荐的新一代状态管理工具深度适配Vue3组合式API语法结构更简洁、逻辑更清晰完美适配当下主流的setup语法糖开发模式。本文将结合Vue3组合式开发模板系统且通俗地讲解Pinia的核心优势、项目引入配置、仓库定义、组件调用及常用拓展功能规避复杂理论聚焦实用知识点助力开发者顺利开启项目开发之旅。一、核心认知Pinia 核心优势适配Vue3Pinia的设计理念完全贴合Vue3的轻量化、简洁化开发思想相比传统Vuex极大简化了状态管理的复杂度尤其适配组合式开发场景。Vuex存在严格的数据流规范需要区分mutation同步、action异步语法冗余、学习成本高且和Vue3组合式语法适配性较差。而Pinia整合了所有状态操作逻辑去除了繁琐的语法限制核心优势十分突出语法贴合Vue3组合式完全适配setup语法糖写法统一、逻辑直观和Vue3原生开发习惯无缝衔接无需适配新语法体系。简化状态操作取消mutation模块同步、异步数据修改统一通过action或直接修改实现减少冗余代码。轻量化高性能精简的源码结构体积小巧无多余API冗余不会对项目造成性能压力适配各类规模Vue3项目。完善TS支持原生搭载TypeScript类型推导类型约束严谨开发报错更少适配中大型项目规范化开发。综上在Vue3组合式开发模板下Pinia是替代Vuex的最优解决方案也是目前Vue项目状态管理的主流选择。二、基础实操Pinia 安装与全局引入Pinia的引入流程简单规范适配所有Vue3 CLI、Vite搭建的项目统一的配置逻辑上手零难度。1、安装 Pinia 依赖根据项目使用的包管理器执行对应安装命令即可三种常用方式全覆盖# npm 安装 npm install pinia ​ # yarn 安装 yarn add pinia ​ # pnpm 安装 pnpm add pinia2、项目全局挂载配置安装完成后需要在项目入口文件main.js/main.ts中创建Pinia实例并全局挂载让项目所有组件、页面均可调用全局状态适配Vue3初始化逻辑import { createApp } from vue import App from ./App.vue // 引入Pinia核心创建方法 import { createPinia } from pinia ​ // 创建Pinia实例并挂载到Vue项目 const pinia createPinia() createApp(App).use(pinia).mount(#app)至此Pinia全局环境配置完成相比Vuex复杂的模块化配置该流程更加简洁高效符合Vue3轻量化开发理念。三、核心用法状态仓库定义与组件调用Pinia采用模块化仓库管理规范的目录结构能让项目状态管理更清晰。行业通用规范为在src目录下新建stores文件夹按业务模块拆分仓库文件用户、购物车、配置等。1、定义业务状态仓库以常用的用户全局状态为例新建stores/user.js通过defineStore定义仓库包含state、getters、actions三大核心模块结构清晰、适配组合式思想import { defineStore } from pinia ​ // 定义并导出用户状态仓库唯一标识为user export const useUserStore defineStore(user, { // state存储全局状态数据固定为函数返回对象避免实例共享数据污染 state: () ({ userName: 游客, userId: , isLogin: false }), ​ // getters状态计算属性用于二次处理state数据缓存计算结果 getters: {}, ​ // actions状态修改方法统一封装业务逻辑支持同步/异步操作 actions: {} })2、Vue3组件中使用仓库在Vue3 setup语法糖环境中可直接引入仓库实例实现全局数据的读取和修改无需复杂解构写法简洁直观完全贴合组合式开发逻辑script setup // 引入自定义的用户状态仓库 import { useUserStore } from /stores/user // 实例化仓库 const userStore useUserStore() ​ // 读取全局状态数据 console.log(当前用户, userStore.userName) ​ // 修改全局状态数据Pinia支持直接修改无需繁琐mutation const changeUserInfo () { userStore.userName 前端开发者 userStore.isLogin true } /script ​ template div p当前登录用户{{ userStore.userName }}/p button clickchangeUserInfo更新用户信息/button /div /template这种调用方式规避了Vuex的繁琐语法数据读写逻辑清晰极大简化了Vue3跨组件、跨页面的数据共享开发。四、实用拓展Pinia 数据持久化配置默认情况下Pinia状态为内存存储页面刷新后数据会重置。在实际开发中可通过pinia-plugin-persistedstate插件快速实现数据持久化保留全局状态适配大部分业务场景。1、安装持久化插件npm install pinia-plugin-persistedstate2、全局注册插件在入口文件中引入并注册插件使其全局生效import { createApp } from vue import App from ./App.vue import { createPinia } from pinia // 引入持久化插件 import piniaPluginPersistedstate from pinia-plugin-persistedstate ​ const pinia createPinia() // 注册插件 pinia.use(piniaPluginPersistedstate) createApp(App).use(pinia).mount(#app)3、仓库开启持久化在需要持久化的仓库中添加persist: true配置即可实现该模块数据自动本地存储export const useUserStore defineStore(user, { state: () ({ userName: 游客, userId: , isLogin: false }), getters: {}, actions: {}, // 开启当前仓库数据持久化 persist: true })结语Pinia凭借简洁的语法、轻量化的设计、完美适配Vue3组合式API的特性成为Vue3项目的首选状态管理工具。相较于Vuex它大幅简化了全局状态管理的开发逻辑降低了语法学习和项目维护成本同时保留了完善的状态管理能力兼顾了实用性与规范性。—— 完 ——✨ 至此结束 ✨ 点赞关注解锁更多技术干货我是 晷龙烬 期待与你的下次相遇目录引言一、核心认知Pinia 核心优势适配Vue3二、基础实操Pinia 安装与全局引入1、安装 Pinia 依赖2、项目全局挂载配置三、核心用法状态仓库定义与组件调用1、定义业务状态仓库2、Vue3组件中使用仓库四、实用拓展Pinia 数据持久化配置1、安装持久化插件2、全局注册插件3、仓库开启持久化结语—— 完 ——

相关新闻

5步掌握PKHeX自动化插件:告别宝可梦数据合法性烦恼

5步掌握PKHeX自动化插件:告别宝可梦数据合法性烦恼

5步掌握PKHeX自动化插件:告别宝可梦数据合法性烦恼 【免费下载链接】PKHeX-Plugins Plugins for PKHeX 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX-Plugins 还在为宝可梦数据合法性而烦恼吗?想象一下这样的场景:你花费数小时…

2026/7/1 6:53:13阅读更多 →
从CVE被动响应到安全左移:SAST工具实战选型与CI/CD集成指南

从CVE被动响应到安全左移:SAST工具实战选型与CI/CD集成指南

1. 项目概述:从“漏洞编号”到“安全左移”的实战思维如果你在软件开发或安全领域待过一段时间,肯定对“CVE”这个词不陌生。它就像一个全球通用的“通缉令编号”,每当一个软件漏洞被公开披露,就会被分配一个唯一的CVE ID。但知道…

2026/7/1 6:53:13阅读更多 →
Educoder离散数学实训通关秘籍:自然推理系统从入门到放弃?不,是到精通!

Educoder离散数学实训通关秘籍:自然推理系统从入门到放弃?不,是到精通!

Educoder离散数学实训:自然推理系统的游戏化通关指南1. 从枯燥到乐趣:重新定义离散数学学习体验计算机专业的同学们对离散数学这门课程一定不陌生,而Educoder平台上的自然推理系统实训更是让不少人又爱又恨。传统的学习方式往往让人感到枯燥乏…

2026/7/1 6:53:13阅读更多 →
从钢管运输到物流优化:一个20年前的数学建模题,如何启发今天的供应链算法设计?

从钢管运输到物流优化:一个20年前的数学建模题,如何启发今天的供应链算法设计?

从钢管运输到物流优化:经典数学建模如何重塑现代供应链算法二十年前那道关于钢管运输的数学建模题,在今天看来像是一颗埋藏已久的算法种子——当我们将视线从单一的管道铺设转向更广阔的物流网络时,会发现这个经典案例中蕴含的模型思想&#…

2026/7/1 7:58:17阅读更多 →
从灵感捕捉到成稿交付:AI 辅助写作工作流的工程化实践

从灵感捕捉到成稿交付:AI 辅助写作工作流的工程化实践

从灵感捕捉到成稿交付:AI 辅助写作工作流的工程化实践 一、写作效率的隐性瓶颈:为什么"写不出来"比"写得慢"更致命 技术写作的效率瓶颈通常不在打字速度,而在三个认知密集型环节:选题调研、结构规划和内容打磨…

2026/7/1 7:58:17阅读更多 →
5G RLC AM模式实战:从PDU传输到窗口停滞,一次讲透数据重传那些事儿

5G RLC AM模式实战:从PDU传输到窗口停滞,一次讲透数据重传那些事儿

5G RLC AM模式实战:从PDU传输到窗口停滞,一次讲透数据重传那些事儿在5G网络优化和协议开发领域,RLC层的AM模式(Acknowledged Mode)一直是工程师们关注的焦点。不同于简单的理论讲解,本文将带您深入实战场景…

2026/7/1 7:58:17阅读更多 →
跨境资金审计更便捷:外资网银操作全流程日志实现一键追溯

跨境资金审计更便捷:外资网银操作全流程日志实现一键追溯

跨境外汇支付、外资银行账户资金往来是集团内审、外部监管重点核查内容,传统密码器分散保管模式下,仅依靠手写纸质台账记录领用情况,记录易缺失、篡改,无法完整还原每一笔跨境付款的操作链路。该物流企业上线集中管控平台后&#…

2026/7/1 7:58:17阅读更多 →
GoF之代理模式

GoF之代理模式

代理模式的作用当一个对象需要受到保护的时候,可以使用代理对象去完成某个行为。需要给某个对象进行功能增强的时候,可以找一个代理进行增强。A对象和B对象无法直接交互时,也可以使用代理模式来完成。代理模式中的三个角色:目标对…

2026/7/1 7:58:17阅读更多 →
2026轮廓仪安装环境要求与隔振方案全解析

2026轮廓仪安装环境要求与隔振方案全解析

在三维光学轮廓仪的日常使用中,环境振动是影响测量数据准确性的最主要外部因素之一。无论是白光干涉还是共聚焦测量原理,绝大多数光学轮廓仪对亚微米至纳米级的外部振动都高度敏感。用户在发现表面形貌测量数据出现跳变、重复性差、干涉条纹不稳定或3D重…

2026/7/1 7:53:17阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →