通常在/src下创建/store目录做仓库管理。

/src/store/index.ts:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { defineStore } from "pinia"
import { Names } from "./store-name"

// 参数1:唯一的命名空间
export const useTestStore = defineStore(Names.TEST, {
// 一个返回对象的函数 在对象里定义值
state: ()=> ({
current: 1,
name: "yajue"
}),

// 类似计算属性computed 修饰一些值 可以缓存
getters: {

},

// 类似方法 同步或异步提交state
actions: {

}
})

App.vue:

1
2
3
4
5
6
7
8
9
10
11
<template>
<div>
pinia: {{ Test.current }} --- {{ Test.name }}
</div>
</template>

<script setup lang="ts">
import { useTestStore } from "./store"

const Test = useTestStore()
</script>

组件中可以使用仓库的数据,并且可以被Vue devtools识别: