安装
Pinia 起始于 2019 年 11 月左右的一次实验,其目的是设计一个拥有组合式 API 的 Vue 状态管理库。
先创建一个 Store:
ts
// stores/counter.js
import { defineStore } from "pinia";
export const useCounterStore = defineStore("counter", {
state: () => ({ count: 0 })
actions: {
increment() {
this.count++;
},
},
});
然后你就可以在一个组件中使用该 store 了:
vue
<template>
<!-- 直接从 store 中访问 state -->
<div>Current Count: {{ counter.count }}</div>
</template>
<script setup>
import { useCounterStore } from "@/stores/counter";
const counter = useCounterStore();
counter.count++;
// 自动补全! ✨
counter.$patch({ count: counter.count + 1 });
// 或使用 action 代替
counter.increment();
</script>