是否可以在内联/内模板处理程序中访问传递给已发出事件的参数?比如:
<component @some-event="someObject.field = $arguments[0]"></component
我要做的就是给作用域中的一个对象赋值.我知道我可以创建一个方法来实现这一点,并将其用作事件的处理程序,但我想知道这是否可以用作内联语句.
是否可以在内联/内模板处理程序中访问传递给已发出事件的参数?比如:
<component @some-event="someObject.field = $arguments[0]"></component
我要做的就是给作用域中的一个对象赋值.我知道我可以创建一个方法来实现这一点,并将其用作事件的处理程序,但我想知道这是否可以用作内联语句.
不是$arguments[0]
美元,而是arguments[0]
美元(不含美元).我很惊讶它实际上在内联处理程序中工作.因此,以下代码是有效的,可以工作:
<component @some-event="someObject.field = arguments[0]"></component>
docs for Methods in Inline Handlers将$event
指定为一个特殊变量,用于获取通过事件传递的第一个参数.我一直用到现在.
在阅读了你的问题之后,更多的研究让我找到了这个参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments
似乎每个javascript函数都有一个名为arguments
的局部变量,当函数需要获得可变数量的参数时,就会使用这个变量.
使用arguments[]
作为内联语句绝对是可能的,但在vue的上下文中没有记录.js框架.另一方面,如果在事件的内联处理程序中使用$event
,它会感觉更安全,因为它有明确的文档记录,并且不会在future 版本的Vue中中断.js
$event
的示例用法:
<component @some-event="someObject.field = $event"></component>