位置:首页 > web前端 > vue

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是鼠标点击的直接元素哦,所以委托者最好不要有很多子元素。


24人点赞 返回栏目 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

手机扫码查看 手机扫码查看