一、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 中的狀態發生變化,那麼相應的元...