Pinia 是一個用於 Vue.js 的狀態管理庫,它提供了一種輕量且直觀的方式來管理應用中的狀態。Pinia 旨在替代 Vuex(Vue.js 的官方狀態管理庫),並且在設計上更加簡潔和易於使用。以下是 Pinia 的介紹和基本使用方法:
Pinia 的特點
- 簡單易用:API 設計簡潔,學習曲線平緩。
- 型別安全:與 TypeScript 良好整合,支援靜態型別檢查。
- 模組化:鼓勵將狀態分割成多個 store,每個 store 都可以獨立管理和維護。
- 高效:最佳化了效能,減少了不必要的計算和渲染。
安裝 Pinia
你可以透過 npm 或 yarn 來安裝 Pinia:
npm install pinia # 或者 yarn add pinia
建立 Store
在你的專案中建立一個新的 store 檔案,例如 store/index.js
:
import { defineStore } from 'pinia' export const useMainStore = defineStore('main', { state: () => ({ count: 0, }), getters: { doubleCount: (state) => state.count * 2, }, actions: { increment() { this.count++ }, }, })
在 Vue 應用中使用 Pinia
首先,在 main.js 中設定 Pinia:
import { createApp } from 'vue' import { createPinia } from 'pinia' import App from './App.vue' const app = createApp(App) app.use(createPinia()) app.mount('#app')
然後,在元件中使用定義好的 store:
<template> <div> <p>Count: {{ count }}</p> <p>Double Count: {{ doubleCount }}</p> <button @click="increment">Increment</button> </div> </template> <script setup> import { useMainStore } from '../store' const store = useMainStore() const { count, doubleCount, increment } = store </script>
這樣就成功地在 Vue 應用中整合了 Pinia,並開始使用它來管理應用的狀態。Pinia 的設計理念使得狀態管理變得更加簡單和直觀,適合各種規模的 Vue 專案。