一 概述
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以及小程式有深入研究 多個檢視依賴於同一狀態 來自不同檢視的行為...