事件委托也叫事件代理,把绑定在子元素上的响应事件委托给父元素。原理是事件的冒泡
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>