javascript - Vue3中方法处理器和内联处理器在功能上没有什么区别是吗?

 

问题描述:

模板编译器会通过检查 v-on 的值是否是合法的 JavaScript 标识符或属性访问路径来断定是何种形式的事件处理器。举例来说,foofoo.barfoo['bar'] 会被视为方法事件处理器,而 foo()count++ 会被视为内联事件处理器。

请问下,@click="foo()" 也是调用方法和直接 @click="foo" 有什么区别呢?
为何 @click="foo()" 是内联处理器而不是方法处理器?
方法处理器和内联处理器在功能上没有什么区别是吗?


 

第 1 个答案:

要说区别也有

foo() 最后会变成一个 () => foo() 这样的函数,这就导致 foo 拿不到 event 参数

而直接 foofoo 可以收到 event 参数

https://sfc.vuejs.org/#eNp1kM...


<!DOCTYPE html><html> <head> <title></title> <link rel="stylesheet ...