亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于vuex的dispatch()方法提問

關于vuex的dispatch()方法提問

開心每一天1111 2018-08-29 17:34:42
function makeAction(type) {   return ({ dispatch }, ...args) => dispatch(type, ...args); };這段代碼是vuex中actions.js里的代碼,通過babel轉成es5后代碼如下:function makeAction(type) {   return function (_ref) {       for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {       args[_key - 1] = arguments[_key];     }         var dispatch = _ref.dispatch;         return dispatch.apply(undefined, [type].concat(args));   }; };疑問如下:這里的dispatch從哪里定義的?這段代碼的作用?感謝各位大神的悉心回答?。。?!
查看完整描述

2 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

官方文檔的說法是:觸發 mutation handler 的方法是 dispatch 一個 mutation 的事件名。

function makeAction(type) { 
 return ({ dispatch }, ...args) => dispatch(type, ...args);
};

我理解的是:這段代碼的作用就是觸發一個名為‘type‘的mutaition事件,...args是額外的參數。
但是這里的{ dispatch }參數我不明白是什么,希望大神能幫忙補充一下。


查看完整回答
反對 回復 2018-09-09
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

這個是 es6 的語法,是“解構賦值使用”, 比如:

function foo({x, y = 5}) {

? console.log(x, y);

}


foo({}) // undefined, 5

foo({x: 1}) // 1, 5

foo({x: 1, y: 2}) // 1, 2

foo() // TypeError: Cannot read property 'x' of undefined

對于 vuex 中的 action 來說,actions 調用的第一個參數是store的實例,有dispatch等方法屬性,調用相當于:

function?foo({dispatch})?{
??dispatch();
}
foo({dispatch:?function(){...}})


查看完整回答
反對 回復 2018-09-09
  • 2 回答
  • 0 關注
  • 3670 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號