Pinia 是 Vue 的存储库,用于跨组件/页面共享状态。
基本使用
-
安装:通过 npm 或 yarn 安装 pinia。
-
创建 Store:使用
defineStore
方法定义 Store,传入 store 的唯一 id 和配置属性,包括 state、getters 和 actions 等。 -
在组件中使用 Store:在组件中导入相应的 Store,然后直接访问 Store 实例的属性和方法。
API 使用代码示例
1. 使用 getters 获取状态
- 定义 Store:在 Store 中定义 getters,用于根据 state 计算并返回一些额外的数据。
- 在组件中使用:在组件中直接访问 Store 实例的 getter 属性即可获取计算后的状态。
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', {
state: () => ({
count: 0
}),
getters: {
doubleCount: (state) => state.count * 2
}
})
<template>
<div>{
{ counter.doubleCount }}</div>
</template>
<script setup>
imp