2. 概念介紹
vuex官網
1. 什麼是vuex
官網描述如下
每乙個 vuex 應用的核心就是 store(倉庫)。「store」基本上就是乙個容器,它包含著你的應用中大部分的狀態 (state)。store和全域性變數的區別
vuex 的狀態儲存是響應式的。當 vue 元件從 store 中讀取狀態的時候,若 store 中的狀態發生變化,那麼相應的元件也會相應地得到高效更新。
你不能直接改變 store 中的狀態。改變 store 中的狀態的唯一途徑就是顯式地提交 (commit) mutation。這樣使得我們可以方便地跟蹤每乙個狀態的變化,從而讓我們能夠實現一些工具幫助我們更好地了解我們的應用。通俗的理解
vuex是乙個倉庫(store),用來儲存元件間的狀態(比如兩個元件之間有事件互動需要一些狀態量)。
2.這個狀態量是響應式的,並且通過commit到mutation進行修改
為什麼要用vuex
其實通過子元件$emit可以通過事件傳遞將父元件的狀態量進行改變,父元件也可以通過子元件的props屬性傳遞引數給子元件,但是這樣存在的問題是當專案很大的時候,這樣傳遞很麻煩,用vuex就相當於把這些狀態量都從元件中抽離出來, 如果用模組化程式設計我們要使用vue.use(『vuex』)來匯入,然後store儲存在store.js中,再main.js中匯入store.js即可
2. 概念介紹
為了具體了解 先上一波簡單的**
// store.js
import vue from
'vue'
;import vuex from
'vuex'
;vue.
use(vuex)
;export
default
newvuex.store(,
mutations:,}
, actions:,}
);
這裡先介紹三個常用功能(基本上夠用)
1. state: 用來儲存的是公共的全域性變數,這裡定義了status和n
2. mutation: 如果在子元件中需要來修改status或者n, 那麼一定是通過子元件中呼叫mutation中的方法對state中的引數進行修改
這裡丟擲兩個問題:(1)子元件如何修改store中的引數 (2)當store中的引數修改時,子元件如何響應監聽資料
子元件如何修改store中的引數
// subcomponent1.vue
methods()
,}
定義在vue物件中的methods方法中,通過this.$store指向我們的store倉庫,然後commit方法來呼叫toggle方法,這裡要注意toggle傳入的為函式名(字串), 1 為傳入的引數,就是定義的toggle方法中的addn, 這裡傳參的時候特別注意!!只有乙個傳參位,多個引數盡量打包成乙個物件進行書寫
// 錯誤
// store.js
toggle
(state, a1, a2, a3)
,// subcomponents1.vue
this
.$store.
commit
('toggle',1
,2,3
);// 這裡a2, a3都無法拿到
// 正確做法
// store.js
toggle
(state, a)
,// subcomponents1.vue
this
.$store.
commit
('toggle',)
;
子元件如何監聽響應
這裡用到兩個重要的vue物件屬性,計算屬性computed和偵聽器watch
不熟悉的可以看官方文件 vue官方文件
// subcomponents2.vue
computed:,}
, watch:
, deep:
true,}
,},
先定義了乙個computed 的計算屬性showtype,這個值就是指向我們的store裡面的state.status
然後我們聽過監聽showtype, 當showtype更改的時候我們響應式的更改檢視
這裡說一下 deep: true 做深度監聽,因為如果這裡status是乙個物件,我們通過對物件的屬性賦值他是不會觸發這個監聽屬性的
這裡很關鍵!!!!
3. action屬性
上面兩個基本能夠滿足大多數的需求,在這裡在介紹一下actions屬性,action與mutation的主要區別
// store.js
actions:
,1000);
},},
// subcomponents1.vue
this
.$store.
dispatch
('asynconsole');
// subcomponents2.vue
computed:,}
, watch:
, deep:
true,}
,}
這裡傳入的context指向的是this.$store
當觸發asynconsole的時候 會過1s再輸出1 2 3 4 等等
vuex的簡易入門
p.p1 p.p2 p.p3 p.p4 p.p5 p.p6 span.s1 span.s2 span.s3 vuex學習 vuex入門其實很簡單當我們專案資料量很龐大的時候 比如乙個介面資料在多個元件之間重複使用多次 我們這裡採用的是vue cli構建的專案目錄 當然前面的npm install v...
Vuex簡單入門
1.vuex是什麼?學院派 vuex是乙個專為vue.js應用程式開發的狀態管理模式 集中儲存和管理應用的所有元件狀態。理解 以上這4個詞是我們理解的關鍵。狀態 什麼是狀態,我們可以通俗的理解為資料。vue只關心檢視層,那麼檢視的狀態如何來確定?我們知道是通過資料驅動,這裡的狀態管理可以簡單理解為管...
Vuex簡單入門
vuex的核心是store倉庫 vue的狀態是響應式的,狀態變更同時更新元件 只能通過store.commit.mutation來提交mutation實現更改狀態 通過store.state.state來獲取狀態 在js中註冊store選項,在計算屬性中通過 computed 寫法如下 const ...