<div class="content" @click="jump">
<div v-for="(item, index) in data" :key="index">
<div class="title">
{{ item.name }}
</div>
<div class="description">
{{ item.description }}
</div>
</div>
</div>
<script lang="ts" setup>
// * 省略引用...
const data = Array.from({ length: 10 }, (_,i) =>({id:i,name:`a${i}`,description:'abc'}));
const jump = id =>{
console.log(id) // * 希望拿到v-for中item的id
}
</script>
需求:我想点击每个v-for出来的item时,都执行 jump
点击事件,然后将 item.id
传入。
现在的问题是,vue3是否自动做了事件委托,然后我可以再每个item里面写click事件,从而不用担心性能问题
<div v-for="(item, index) in data" :key="index" @click="jump(item.id)">
// ...
</div>
可以参考这个Vue列表 — 事件委托
vue 没必要用事件委托 Is event delegation necessary?