Vue3-pinia(狀態(tài)管理)

pinia是什么轮锥?

這個是 vue3 新的狀態(tài)管理工具矫钓,簡單來說相當于之前 vuex,它去掉了 Mutations 但是也是支持 vue2 的舍杜,尤大推薦新娜。因為其logo像是一個菠蘿,所以我們還稱呼它為大菠蘿既绩。

官網(wǎng)

https://pinia.vuejs.org/

下載

npm i pinia

使用

  1. mian.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')

  1. store文件夾新建 index.js 文件,支持TS的你就建立 index.ts,文件中引入 pinia 使用饲握,用來存儲狀態(tài)
import {defineStore} from 'pinia'

export const useUserStore = defineStore("USER",{
    state() {
        return {
            name: '景天',
            age: 18,
            name1: '胡歌',
            age1: 36
        }
    },
    // 和vuex一樣
    getters: {

    },
    // 和vuex一樣
    actions: {
        setAge() {
            this.age--
        }
    }
})
  1. 頁面中使用 pinia 中存儲的狀態(tài)
<template>
    <div>正常取值</div>
    <div>{{User.name}}</div>
    <div>{{User.age}}</div>
    <div>解構取值</div>
    <div>{{name}}</div>
    <div>{{age}}</div>
    <div>解構取值轉ref</div>
    <div>{{name1}}</div>
    <div>{{age1}}</div>
    <button @click="change1">change1</button>
    <button @click="change2">change2</button>
    <button @click="change3">change3</button>
    <button @click="change4">change4</button>
    <button @click="change5">change5</button>
    <div>
        <button @click="handleReset">重置</button>
    </div>
</template>

<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { useUserStore } from './store';

// 獲取store中的值
let User = useUserStore()

// 通過ES6的結構取值私杜,但是這個值不是響應式的
let {name,age} = User

// 通過pinia自帶的方法蚕键,轉換成ref,就是響應式的了
let {name1,age1} = storeToRefs(User)

// 改變store中值的方式有五種
// 方式一
function change1() {
    User.age++
}
// 方式二衰粹,可一次性修改多個值锣光,對象的形式
function change2() {
    User.$patch({
        name: '雪見',
        age: 17
    })
}
// 方式三,可一次性修改多個值铝耻,函數(shù)的形式
function change3() {
    User.$patch((state) => {
        state.name = '徐長卿'
        state.age = 19
    })
}
// 方式四誊爹,哪怕修改一個值,也要傳所有值瓢捉?频丘??
function change4() {
    User.$state = {
        name: '茂茂',
        age: 16,
        name1: '李逍遙',
        age1: 18
    }
}
// 方式五泊柬,借助actions
function change5() {
    User.setAge()
    //也可以傳參
    // User.setAge(999)
}

// 重置數(shù)據(jù)
function handleReset() {
    User.$reset()
}

</script>

<style>
</style>
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末椎镣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子兽赁,更是在濱河造成了極大的恐慌状答,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刀崖,死亡現(xiàn)場離奇詭異惊科,居然都是意外死亡,警方通過查閱死者的電腦和手機亮钦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門馆截,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜂莉,你說我怎么就攤上這事蜡娶。” “怎么了映穗?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵窖张,是天一觀的道長。 經(jīng)常有香客問我蚁滋,道長宿接,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任辕录,我火速辦了婚禮睦霎,結果婚禮上,老公的妹妹穿的比我還像新娘走诞。我一直安慰自己副女,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布速梗。 她就那樣靜靜地躺著肮塞,像睡著了一般襟齿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上枕赵,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天猜欺,我揣著相機與錄音,去河邊找鬼拷窜。 笑死开皿,一個胖子當著我的面吹牛,可吹牛的內容都是我干的篮昧。 我是一名探鬼主播赋荆,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼懊昨!你這毒婦竟也來了窄潭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酵颁,失蹤者是張志新(化名)和其女友劉穎嫉你,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躏惋,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡幽污,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了簿姨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片距误。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扁位,靈堂內的尸體忽然破棺而出准潭,到底是詐尸還是另有隱情,我是刑警寧澤域仇,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布惋鹅,位于F島的核電站,受9級特大地震影響殉簸,放射性物質發(fā)生泄漏。R本人自食惡果不足惜沽讹,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一般卑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爽雄,春花似錦蝠检、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饲梭。三九已至,卻和暖如春焰檩,著一層夾襖步出監(jiān)牢的瞬間憔涉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工析苫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兜叨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓衩侥,卻偏偏與公主長得像国旷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子茫死,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內容