-
bbianji8 用户
Pinia Vue 状态管理完全教程:用 Vue 3 写出可维护的全局状态
一、原理背景
当 Vue 3 项目只有一个组件时,数据用 ref/reactive 就够了;但真实项目里,登录用户信息、购物车、多语言、主题要在「很多互不相关的组件」之间共享。这时候把状态层层 props 传下去会失控——这就是状态管理要解决的问题。
Pinia 是 Vue 官方推荐的状态管理库(Vuex 的继任者),理念是「一个 Store 就是一个独立的状态容器」。它的设计原则:
- 单一数据源:每个 store 集中管理一类状态,组件想用直接
useXxxStore()拿,不再层层透传。 - 去中心化:你可以建多个 store(user、cart、theme),互不干扰,比 Vuex 的单一大 store 更易维护。
- TS 友好 + 极简 API:没有 Vuex 的
mutations概念,改状态直接在 action 或组件里赋值,心智负担小。
一句话:Pinia 让「跨组件共享、可预测、好调试」的状态变得简单。
二、分步操作
步骤 1:创建项目并安装
npm create vite@latest myapp -- --template vue
cd myapp && npm install
npm install pinia