vue 事件委托

事件委托也叫事件代理,把绑定在子元素上的响应事件委托给父元素。原理是事件的冒泡
vue 的事件委托
事件绑定在父元素上,避免子元素渲染过多事件,影响性能

<template>
  <ul @click="onclick">
      <!-- data-* 自定义属性,通过 e.target.dataset 获取 -->
      <li class="home_item" v-for="(item,index) in list" :key="item.id" :data-index="index"></li>
  </ul>
</template>
<script>
export default {
  methods: {
      onclick(e){
          // 找到当前 target 属性
          let { target={} } = e
          // 通过 target 下的 dataset 获取 index
          let index = target.dataset.index
          // 也可以通过 getAttribute(data-index) 获取index
          let index = target.getAttribute("data-index")
          // 拿到item,可以传item,考虑到item可能过大,直接传会影响视图加载,所以只传index
          let item = this.list[index] 
      }
  }
}
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容