Pinia 渐进式学习指南

作者:互联网

2026-04-15

Javascript教程

Pinia 渐进式学习指南


目录

  1. 什么是 Pinia?
  2. 安装与初始化
  3. 第一个 Store
  4. State(状态)
  5. Getters(计算属性)
  6. Actions(方法)
  7. 在组件中使用 Store
  8. Store 之间的组合
  9. 插件机制
  10. 测试 Store
  11. 最佳实践总结

一、什么是 Pinia?

Pinia 是 Vue 官方推荐的状态管理库,也是 Vuex 的继任者。它具有以下特点:

  • 更简洁的 API,无需 mutations,直接修改状态
  • 天然支持 TypeScript,类型推断开箱即用
  • 支持 Composition API,与 Vue 3 无缝集成
  • 模块化设计,每个 Store 都是独立的,没有嵌套模块
  • 集成 Vue DevTools,支持调试

与 Vuex 对比:

特性VuexPinia
Mutations必须不需要
模块嵌套嵌套模块扁平独立 Store
TypeScript需要额外配置原生支持
Composition API不原生支持完整支持
代码量较多精简

二、安装与初始化

安装

npm install pinia
# 或
pnpm add pinia

在 Vue 应用中挂载

// main.ts
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'const app = createApp(App)
const pinia = createPinia()
​
app.use(pinia)
app.mount('#app')

推荐目录结构

src/
  stores/
    counter.ts     # 计数器 Store
    user.ts        # 用户 Store
    cart.ts        # 购物车 Store
  components/
  App.vue
  main.ts

三、第一个 Store

Store 的两种写法

Pinia 提供两种风格,推荐使用 Setup Store(Composition API 风格)。

Option Store(熟悉 Vue Options API 的人友好)

类比:statedatagetterscomputedactionsmethods

// stores/counter.ts
import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', {
  state: () => ({
    count: 0,
    name: 'Pinia',
  }),
  getters: {
    doubleCount: (state) => state.count * 2,
  },
  actions: {
    increment() {
      this.count++
    },
  },
})
Setup Store(推荐)

和写

脚本在线

智能赋能梦想,脚本构筑现实。我们致力于链接AI智能指令 与传统自动化,为您提供一站式、高效率的脚 本资产与生成 服务。

核心板块

AI脚本库 自动化仓库 脚本实验室

关于我们

最新游戏 商务合作 隐私政策

社区支持

API文档 攻略资讯 违规举报

© 2026 jiaoben.net | 脚本在线 | 联系:jiaobennet2026@163.com

备案:湘ICP备18025217号-11