在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ vue v-on綁定事件時(shí)函數(shù)名加與不加括號(hào)的區(qū)別

vue v-on綁定事件時(shí)函數(shù)名加與不加括號(hào)的區(qū)別

在原生js中調(diào)用函數(shù)是需要加括號(hào)的,為什么vue中v-on綁定的事件都沒加,這里是vue底層做了封裝嗎,我不是太明白這一點(diǎn),有沒有人可以舉例子說(shuō)明一下嗎

回答
編輯回答
陪她鬧

v-on的值分倆種情況:

簡(jiǎn)單取值路徑或者函數(shù)表達(dá)式

簡(jiǎn)單路徑例如:

  • v-on="a"
  • v-on="a.b"
  • v-on="obj.foo"

函數(shù)表達(dá)式如:

  • v-on="() => console.log(1)"
  • v-on="function() { console.log(1) }"

滿足這個(gè)條件的值會(huì)被處理成函數(shù)調(diào)用, 也即是說(shuō), 你不用提供圓括號(hào).

  • a 處理為 a()
  • a.b 處理為 a.b()
  • obj.foo 處理為 obj.foo()
  • () => console.log(1) 處理為 (() => console.log(1))()
  • function() { console.log(1) } 處理為 (function() { console.log(1) })()

非簡(jiǎn)單取值路徑也非函數(shù)表達(dá)式

除去上面提到的兩種情況, 其他情況下 v-on 的值會(huì)被包裹進(jìn)一個(gè)函數(shù)聲明內(nèi).

  • a ? b : c 處理為 function($event) { a ? b : c }
  • b($event.target.value) 處理為 function($event) { b($event.target.value) }

這就是為什么你可以使用 $event 變量的原因.

2017年11月22日 03:19
編輯回答
好難瘦

區(qū)別在于傳參數(shù)的時(shí)候

2017年9月29日 20:18