vue中事件委托如何实现
dearweb
发布:2021-10-25 15:22:35阅读:
我们经常遇到vue中v-for一个列表,列表的每一项都绑定了@click处理事件。我们都知道绑定这么多监听,从性能方面来说是不太好的。那我们我们如何用委托的形式来实现呢。
我们先准备一个列表
<table @click="edit">
<tr v-for="item in list">
<td>{{item.name}}</td>
...
<td>
<button :data-id="item.id" title="eidt">编辑</button>
</td>
</tr>
</table>下面我们实现事件委托的功能
methods: {
edit (event){
if(event.target.title == "edit"){ //如果点击到了edit
let id = evenr.target.dataset.id;
//拿着id参数执行着相关的操作
this.doSomething(id)
}
},
doSomething(id) { // do what you want
alert(id)
}
}注意: 因为target是鼠标点击的直接元素哦,所以委托者最好不要有很多子元素。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧