问题
在vue中
//用法1
<component @click="clickHandler"></component>
//用法2
<component @click="clickHandler($event)"></component>
.
.
.
{
...
methods:{
clickHandler(e){}
}
}
按照官方说法,1和2是clickHandler
的e
都能拿到click
的event
参数。
但是如果在自定事件中,如何实现类似$event
这个关键字功能呢。答案官网目前并没有提及
方法
这里给出一个,不算完美的解决方法 即使用 arguments
关键字来处理
- 组件
foo
的定义{ ... mounted(){ new Promise((resolve,reject)=>{ this.$emit("mounted",resolve,reject) }) } }
- 组件
bar
引用了组件foo
{ template: `<div> <foo @mounted="mountedHandler(arguments,name)"></foo> </div> `, data(){ return{ name:"乐园" } }, methods:{ mountedHandler([resolve,reject],name){ //这里可以获取到resolve,reject和name } } }