在小型專案中,元件與元件之間通訊比較簡單。父元件可以使用pros
向子元件傳遞資料,子元件可以通過$emit
向父元件傳遞事件和資料,一旦狀態管理多了,**就會變得十分混亂。由於狀態零散的分布在許多元件和元件之間的互動中,大型應用複雜度也經常逐漸增長。vuex
狀態管理庫可以很方便的統一管理專案的狀態,無論是對現在的開發人員還是將來新接手的開發人員都容易管理和維護。並且,一些邏輯**也可以抽離出來,具體**需要用到只需要分發一下事件,簡單方便。
vuex由以下部分組成:
import * as types from '../types.js'
const state = {}
const actions = {}
const mutations = {}
const getters = {}
export default
若是有多個模組:
|__store
|__modulename1
|__modulename2
|__state.js
|__types.js
|__actions.js
|__mutations.js
|__index.js
|__getters.js
|__index.js
在index.js
檔案中匯出模組
import vue from 'vue'
import vuex from 'vuex'
vue.use(vuex)
import modulename1 from './modulename1'
import modulename2 from './modulename2'
export detault new vuex.store(
})
注意點:
所有子模組的getters
物件裡的方法會被合併到$store裡,如果不同的子模組有重名的方法,就會報錯,只要在index.js
檔案上匯出模組的地方加上namespace:true
就可以了。
當需要引入多個狀態和事件時不需要乙個乙個的引入,集體引入很方便
使用的時候要先引入這些變數
import from 'vuex'
mapgetters
,mapstate
值都屬於計算屬性,在檔案中寫在computed
裡面
computed: ),
...mapstate(),
othercompuedvalue()
}
mapactions
屬於事件
methods: )
}
實戰是最重要的,容易發現問題,可以進步飛快~
用vuex完成的有關購物車部分的小專案:
歡迎star~
購物車業務邏輯(vuex)
list 列表頁 1 傳送ajax請求,獲取相應的資料 2 給每乙個上平新增乙個點選事件 3 每乙個商品都要有乙個id 4 當點選商品時,將商品id值傳遞給詳情頁 details 詳情頁 1 當進入詳情頁的時候通過url位址拿到商品的id 2 傳送ajax請求,從資料庫中獲取id相對應的商品,進行返...
Vuex案例 購物車
購物車 demo,帶你理解並使用 vuex 狀態管理 購物車 vuex 中建立兩個模組,分別用來記錄商品列表和購物車的狀態,store 的結構 store modules cart.js production.js index.js 檢視結構 view cart index.vue home ind...
Vuex購物車資料狀態管理
vuex是乙個專為vue.js應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,這裡的狀態在一定程度上可以理解成資料狀態。vuex可以理解成乙個可以供獲取和修改的公共共享資料倉儲。import vuex from vuex vue.use vuex var store newvu...