vue3中pinia的使用方法
一、安裝Pinia
1、使用npm安裝
在項(xiàng)目目錄下,通過(guò)命令行執(zhí)行以下命令:
npm install pinia
2、在Vue應(yīng)用中使用Pinia
在main.js(或入口文件)中引入并使用Pinia。首先導(dǎo)入createPinia函數(shù)并創(chuàng)建一個(gè)Pinia實(shí)例,然后將其掛載到Vue應(yīng)用上。
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';
const pinia = createPinia();
const app = createApp(App);
app.use(pinia);
app.mount('#app');
二、定義store
1、定義一個(gè)簡(jiǎn)單的store
創(chuàng)建一個(gè)新的 .js 文件(例如store.js)來(lái)定義store。
import { defineStore } from 'pinia';
// 第一個(gè)參數(shù)是store的唯一ID,第二個(gè)參數(shù)是一個(gè)函數(shù),返回store的配置對(duì)象
export const useCounterStore = defineStore('counter', {
// 類似于Vuex中的state,存儲(chǔ)數(shù)據(jù)
state: () => {
return {
count: 0
};
},
// 類似于Vuex中的getters,用于派生數(shù)據(jù)
getters: {
doubleCount: (state) => {
return state.count * 2;
}
},
// 類似于Vuex中的actions和mutations的組合,用于修改state
actions: {
increment() {
this.count++;
},
decrement() {
this.count--;
}
}
});
三、在組件中使用store
1、在組件中獲取store實(shí)例并使用數(shù)據(jù)
在Vue組件中,可以使用useCounterStore函數(shù)來(lái)獲取store實(shí)例。
<template>
<div>
<p>當(dāng)前計(jì)數(shù): {{ counter.count }}</p>
<p>雙倍計(jì)數(shù): {{ counter.doubleCount }}</p>
<button @click="counter.increment()">增加計(jì)數(shù)</button>
<button @click="counter.decrement()">減少計(jì)數(shù)</button>
</div>
</template>
<script>
import { useCounterStore } from './store.js';
export default {
setup() {
const counter = useCounterStore();
return { counter };
}
};
</script>
2、在組件外使用store(例如在路由守衛(wèi)等非組件代碼中)
可以直接導(dǎo)入store定義并使用。
import { useCounterStore } from './store.js';
const counterStore = useCounterStore();
console.log(counterStore.count);
counterStore.increment();
Pinia提供了一種簡(jiǎn)潔、直觀的方式來(lái)管理Vue 3應(yīng)用中的狀態(tài),相比于Vuex,它具有更簡(jiǎn)單的API和更好的類型支持等優(yōu)點(diǎn)。
到此這篇關(guān)于vue3中pinia的使用方法的文章就介紹到這了,更多相關(guān)vue3 pinia內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Vue3+Element?Plus封裝公共表格組件(帶源碼)
最近公司項(xiàng)目中頻繁會(huì)使用到table表格,而且前端技術(shù)這一塊也用到了vue3來(lái)開(kāi)發(fā),所以基于element plus table做了一個(gè)二次封裝的組件,這篇文章主要給大家介紹了關(guān)于利用Vue3+Element?Plus封裝公共表格組件的相關(guān)資料,需要的朋友可以參考下2023-11-11
webpack&webpack-cli完全卸載過(guò)程
本文介紹了如何刪除全局和本地的webpack及其CLI,并提供了檢查webpack殘余文件的方法,總結(jié)了個(gè)人的操作經(jīng)驗(yàn),旨在為讀者提供參考,并期待獲得更多支持2024-09-09
vue自定義底部導(dǎo)航欄Tabbar的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue自定義底部導(dǎo)航欄Tabbar的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
vue3項(xiàng)目啟動(dòng)自動(dòng)打開(kāi)瀏覽器以及server配置過(guò)程
這篇文章主要介紹了vue3項(xiàng)目啟動(dòng)自動(dòng)打開(kāi)瀏覽器以及server配置過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)動(dòng)態(tài)菜單
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)動(dòng)態(tài)菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè)的方法
這篇文章主要介紹了vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
vue 解決addRoutes多次添加路由重復(fù)的操作
這篇文章主要介紹了vue 解決addRoutes多次添加路由重復(fù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08

