Vuex的入門指南

2021-09-18 01:15:28 字數 2913 閱讀 7512

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 ...