vue pinia

Pinia 是 Vue 的官方状态管理库,专为 Vue 3 设计,旨在简化状态管理流程。以下是其核心特点与使用方法:

1. ‌核心优势
  • 轻量高效‌:Pinia API 简洁,体积小,性能优越。
  • 组合式 API 支持‌:天然兼容 Vue 3 的组合式 API,Vue 2 也支持。
  • 模块化设计 ‌:通过 defineStore 创建独立的 Store 模块,便于管理复杂应用状态。
2. ‌核心概念
  • Store ‌:状态容器,包含 stategettersactions 三部分:
    • state:存储数据(如 count: 0)。
    • getters:计算属性(如 doubleCount)。
    • actions:同步/异步方法(如 increment)。
3. 搭建pinia环境
复制代码
npm install pinia

操作src/main.ts

复制代码
import { createApp } from 'vue'
import App from './App.vue'
/* 引入createPinia,用于创建pinia */
import { createPinia } from 'pinia'

import router from './router/index'
/* 创建pinia */
let pinia = createPinia();
let app = createApp(App)
/*  挂载pinia */
app.use(pinia)
app.use(router)
app.mount('#app')

// 定义 Store
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', {
  state: () => ({ count: 0 }),
  actions: { increment() { this.count++ } }
})

// 使用 Store
const counter = useCounterStore()
counter.increment()
console.log(counter.count) // 输出: 1
4. ‌模块化与持久化
  • 模块化 ‌:通过命名空间区分不同功能模块(如 user.jsshop.js)。
  • 持久化 ‌:结合 vueuseuseLocalStorage 实现数据持久化。
5. ‌与 Vuex 的对比
  • Pinia 是 Vuex 的简化版,API 更直观,推荐 Vue 3 项目使用。

总结‌:Pinia 提供了 Vue 专属的状态管理解决方案,简化了状态共享与持久化,是 Vue 3 项目中的理想选择。

相关推荐
kyriewen19 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
IT_陈寒19 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
山河木马20 小时前
矩阵专题2-怎么创建视图矩阵(uViewMatrix)
javascript·webgl·计算机图形学
小林攻城狮20 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦20 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
the_answer20 小时前
Webpack vs Vite 深度对比分析
前端·webpack
转转技术团队21 小时前
验证码识别实战:前端不写页面,改训模型了?
前端
MomentYY21 小时前
Temperature:AI 的“脑洞旋钮”
前端·llm·ai编程
远航_21 小时前
OpenSpec 完整详细介绍
前端·后端
召钱熏21 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端