vuex中mutation和action的詳細區別

2021-10-08 20:06:35 字數 2037 閱讀 2917

一、vuex中mutation和action的詳細區別

const store =

newvuex.store(,

mutations:},

actions:}}

)

1、流程順序

「相應檢視—>修改state」拆分成兩部分,檢視觸發action,action再觸發mutation。

2、角色定位

基於流程順序,二者扮演不同的角色。

mutation:專注於修改state,理論上是修改state的唯一途徑。

action:業務**、非同步請求。

3、限制

角色不同,二者有不同的限制。

mutation:必須同步執行。

action:可以非同步,但不能直接操作state。

原文:二、普通函式和箭頭函式的區別

箭頭函式:

let

fun=()

=>

普通函式:

function

fun(

)

箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return。

(1)箭頭函式是匿名函式,不能作為建構函式,不能使用new

let

funconstructor=(

)=>

let fc =

newfunconstructor()

;

(2)箭頭函式不繫結arguments,取而代之用rest引數…解決

function

a(a)a(

1,2,

3,4,

5,8)

;// [1, 2, 3, 4, 5, 8, callee: ƒ, symbol(symbol.iterator): ƒ]

letb

=(b)

=>b(

2,92,

32,32)

;// uncaught referenceerror: arguments is not defined

letc=(

...c)

=>c(

3,82,

32,11323);

// [3, 82, 32, 11323]

(3)箭頭函式不繫結this,會捕獲其所在的上下文的this值,作為自己的this值

var obj =},

c:function()

}}obj.b(

); obj.c(

);var obj =

, c:

function()

}}obj.b(

); obj.c(

)();

let obj2 =

, c:

function

(n);

return f.

call

(m,n);}

};console.

log(obj2.b(

1));

// 11

console.

log(obj2.c(

1));

// 11

(5)箭頭函式沒有原型屬性

vara=

()=>

functionb(

) console.

log(a.prototype)

;// undefined

console.

log(b.prototype)

;//

(6)箭頭函式不能當做generator函式,不能使用yield關鍵字

Mutation 和 Action 的差異

vuex在使用狀態管理的時候 只能使用this.store.commit來提交mutation對store中的狀態進行修改 vuex 中每個mutation都有乙個字串的事件型別type 和 乙個 函式handler 這個 函式就是我們實際進行狀態更改的地方,並且它會接受 state 作為第乙個引數...

Vuex常見使用場景和Vuex中資料快取的使用

vuex非同步請求使用場景一般是在兩個列表中重複請求資料,可以將資料儲存在store中,在使用者頻繁請求時,可以不必要多次的使用ajax請求獲取資料,而是直接在store中拿已經快取的資料 store中的資料是快取在記憶體中的,只要網頁一重新整理或者關閉,快取的資料就會丟失。vuex狀態管理 功能 ...

Vuex起步 Vuex和全域性物件的區別

每乙個 vuex 應用的核心就是 store 倉庫 store 基本上就是乙個容器,它包含著你的應用中大部分的狀態 state vuex 和單純的全域性物件有以下兩點不同 vuex 的狀態儲存是響應式的。當 vue 元件從 store 中讀取狀態的時候,若 store 中的狀態發生變化,那麼相應的元...