🍍
Pinia · Vue 官方状态管理

Pinia 完全指南

Vue 官方推荐的状态管理库——取代 Vuex 的极简方案:直观 API、无 mutations、TypeScript 一等公民、模块化 Store

~1.5KB 体积
无 mutations
类型安全
DevTools 支持
SSR 友好
~1.5KB Gzip 体积
10 核心章节
2 种写法风格

Pinia 为什么取代了 Vuex?

Vuex 曾是 Vue 生态的官方状态管理方案,但它的设计在 Vue 3 + TypeScript 时代显得笨重:强制 mutations(改 state 必须 commit,模板代码多)、命名空间模块嵌套复杂this.$store.state.user.profile.name)、TypeScript 类型推断困难(要写大量泛型和辅助类型)、DevTools 集成有限

Pinia 由 Vue 核心团队成员 Eduardo San Martin Morote 打造,现已成为 Vue 官方推荐的状态管理库。它去掉了 mutations(直接改 state 或用 actions),store 天然扁平模块化(每个 store 独立,用 import 组合),完美的 TypeScript 推断(无需任何辅助类型),支持组合式与选项式两种写法,体积仅约 1.5KB,DevTools 深度集成、时间旅行调试、SSR 与 Nuxt 开箱即用。

本教程 10 章从零讲到精通:认识 Pinia 与安装、定义 Store、State/Getters/Actions 三大概念、组件中使用、插件与持久化、TypeScript 深入、SSR/Nuxt 集成,以及完整实战与从 Vuex 迁移。

核心能力

六大特性让 Pinia 成为 Vue 3 时代的默认状态管理方案

极简 API

只有 state / getters / actions 三个概念,去掉 mutations,学习成本极低。

🧩

模块化 Store

每个 store 独立定义,天然扁平,用 import 自由组合,无命名空间地狱。

🧬

TypeScript 一等公民

state/getter/action 类型自动推断,无需任何辅助泛型,改一处全链路提示。

🔀

两种写法

选项式(Options)贴近 Vuex 习惯,组合式(Setup)用 ref/computed 更灵活。

🛠️

DevTools 集成

Vue DevTools 中查看 store 状态、时间旅行、追踪 action 调用与 state 变化。

🌐

SSR / Nuxt 友好

服务端渲染状态注水、Nuxt 自动导入,避免跨请求状态污染。

课程目录

10 章从第一个 Store 到生产级架构与 Vuex 迁移

Chapter 01

认识 Pinia

Vue 状态管理演进、为何取代 Vuex、Pinia 优势(无 mutations / TS 友好 / 模块化)、安装 createPinia 与挂载。

入门 对比 Vuex
Chapter 02

定义 Store

defineStore、选项式 state/getters/actions、组合式(setup)写法、两种风格对比与选择。

defineStore 两种写法
Chapter 03

State 状态

state 定义、访问与修改、$patch 批量更新、$reset、$state 替换、storeToRefs 保持响应式解构。

state $patch
Chapter 04

Getters 计算

getters 定义、访问其他 getters、带参 getter、返回函数、缓存机制与性能。

getters 缓存
Chapter 05

Actions 动作

同步/异步 action、调用其他 action、组合 store、错误处理、访问 this。

actions 异步
Chapter 06

组件中使用 Store

useStore、storeToRefs 保持响应式、在 setup 外使用、组件卸载与生命周期。

useStore storeToRefs
Chapter 07

插件与持久化

Pinia 插件机制、pinia-plugin-persistedstate 本地持久化、$subscribe 订阅变化、$onAction。

插件 持久化
Chapter 08

TypeScript 深入

state/getter/action 类型推断、类型化 store、泛型、类型安全最佳实践。

TypeScript 类型推断
Chapter 09

SSR 与 Nuxt

Nuxt 集成、SSR 状态注水 hydration、服务端状态、避免跨请求状态污染。

SSR Nuxt
Chapter 10

实战与最佳实践

完整购物车/用户 store、store 组织结构、测试 store、DevTools 调试、从 Vuex 迁移、性能清单。

实战 迁移
⚒️ 配套开发者工具箱 · JSON / 正则 / 时间戳 / Cron 等 17 款免费在线工具