前端 vuex基礎

2021-08-29 12:07:16 字數 2505 閱讀 9634

一 概述

1.vuex是做什麼的

管理共享狀態

現在有兩個頁面 a 和 b,還有以下兩個要求:

要求它們都能對 count 進行操控。

要求 a 修改了 count 後,b 要第一時間知道,b 修改後,a 也要第一時間知道。

把資料來源 count 剝離開來,用乙個全域性變數或者全域性單例的模式進行管理,這樣不就在任何頁面都可以很容易的取到這個狀態了。就是 vuex 的工作。

2.安裝vuex

具體看官方文件就可以:

vuex安裝

3.如何使用vuex

當我們的專案不大時,可以使用vuex的簡單模式–store模式。

4.vuex和全域性物件的對比

5.vuex組成

vuex 的內臟由五部分組成:state、getter、mutation、action 和 module。在實際應用中,這五個部分並不是必須的,你需要用到什麼就新增什麼。但是一般再怎麼簡單的 vuex,也至少會由 state 和 mutation 構成。

二 state

三 getter

有時候,我們會發現 state 中的資料,並不是我們直接想要的,如果我們在使用的地方進行處理,那每個使用的地方都需要做改變。這裡我們就可以使用getter。

就像計算屬性一樣,getter 的返回值會根據它的依賴被快取起來,且只有當它的依賴值發生了改變才會被重新計算。

const store =

newvuex.store(,

getters:}}

)

另外,getter 還會將 store.getters 物件暴露出去,你可以以屬性的形式訪問這些值:

console.

log(store.getters.weekdate)

我們可以很容易地在任何元件中使用它:

computed:

}

現在需求又變了,每個模組要顯示的 weekdate 的格式不一樣,有的顯示全部日期,有的需要顯示星期幾,怎麼辦?

因為 weekdate 並不是乙個函式,它僅僅只是乙個屬性而已。我們就想辦法把這個屬性變成乙個函式:

getters:

}

具體使用:

store.getters.

weekdate

('mm do yy'

)

四 mutation

更改 vuex 的 store 中的狀態的唯一方法是提交 mutation。mutations必須是同步函式

const store =

newvuex.store(,

mutations:}}

)

注意,我們不能直接 store.mutations.increment() 來呼叫,vuex 規定必須使用 store.commit 來觸發對應 type 的方法:

store.

commit

('increment'

)

我們還可以向 store.commit 傳入額外的引數:

mutations:

}// 呼叫

store.

commit

('increment',10

)

這個引數就叫做載荷,在大多數情況下,載荷是乙個物件。提交的方式有兩種:

// 1、把載荷和type分開提交

store.

commit

('increment',)

// 2、整個物件都作為載荷傳給 mutation 函式

store.

commit

()

當我們要修改state裡面物件:

const store =

newvuex.store(}

})

這個時候,我們如果想要給 student 新增乙個年齡 age: 18 屬性,怎麼辦呢?

mutations:

}}

五 action

上面的mutations必須是同步函式,如果我們需要使用非同步,就輪到action上場了。

action與mutations不同之處在於:

我們首先來看乙個action示例:

const store =

newvuex.store(,

mutations:},

actions:}}

)

我們也可以通過es2015的引數表達結構來寫:

五 常用輔助函式

1 mapstate

2 mapgetters

3 mapmutations

4 mapactions

六 module

關於vuex,前端必會

vuex 是乙個專為 vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可 的方式發生變化。簡單來說 vuex 就是把需要共享的變數全部儲存在乙個物件裡面,然後將這個物件放在頂層元件中供其他元件使用,它是另一種意義上的變數提公升。也就是說...

VueX基礎學習

vuex是為了儲存元件之間共享資料二誕生的,如果元件之間有要共享的資料,可以直接掛載到vuex中,而不必通過父子元件傳值了,如果元件的資料不需要共享,那就不必放在vuex中。安裝vuex包npm i vuex s匯入vuex包 在main.js中引入 import vuex from vuex 註冊...

vuex基礎入門

vuex簡介 vuex的安裝和組成介紹 vuex是乙個專門為vue.js應用程式開的狀態管理模式 它採用集中式儲存管理應用的所有元件的狀態 並以相應的規則保證以一種可 的方式發生變化 移動端開發和工程化開發有豐富經驗 uejs,node以及小程式有深入研究 多個檢視依賴於同一狀態 來自不同檢視的行為...