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

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

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

回复
1个回答
avatar
test
2024-07-11

要说区别也有

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

而直接 foofoo 可以收到 event 参数

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容