Vue3中方法处理器和内联处理器在功能上没有什么区别是吗?
模板编译器会通过检查v-on的值是否是合法的 JavaScript 标识符或属性访问路径来断定是何种形式的事件处理器。举例来说,foo、foo.bar和foo['bar']会被视为方法事件处理器,而foo()和count++会被视为内联事件处理器。
请问下,@click="foo()" 也是调用方法和直接 @click="foo" 有什么区别呢? 为何 @click="foo()" 是内联处理器而不是方法处理器?方法处理器和内联处理器在功能上没有什么区别是吗?
回复
1个回答
test
2024-07-11
要说区别也有
foo() 最后会变成一个 () => foo() 这样的函数,这就导致 foo 拿不到 event 参数
而直接 foo,foo 可以收到 event 参数
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容