Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue.js处理多次单击事件_Javascript_Mouseevent_Vuejs2_Vue.js - Fatal编程技术网

Javascript Vue.js处理多次单击事件

Javascript Vue.js处理多次单击事件,javascript,mouseevent,vuejs2,vue.js,Javascript,Mouseevent,Vuejs2,Vue.js,我有一个列表,希望为列表中的每个项目处理一个单击事件 <ul> <li v-for="item, index in items" :key="index" @click="select(item)" > {{ item }} </li> </ul> 当有大约10个项目时,这种方法效果很好。但是,当有大约1000个项目时,性能会变得非常慢,因为我为1000个项目附加了1000个事件 解决方案是只为列表

我有一个列表,希望为列表中的每个项目处理一个单击事件

<ul>
  <li 
    v-for="item, index in items" 
    :key="index"
    @click="select(item)"
  >
    {{ item }}
  </li>
</ul>
当有大约10个项目时,这种方法效果很好。但是,当有大约1000个项目时,性能会变得非常慢,因为我为1000个项目附加了1000个事件

解决方案是只为列表附加一个单击事件,并使用
event.target

<ul @click="select($event)">
  <li 
    v-for="item, index in items" 
    :key="index"
  >
    {{ item }}
  </li>
</ul>

  • {{item}}
  • 在功能
    中选择
    ,如何获取每个项目对应的
    项目

    <ul @click="select($event)">
      <li 
        v-for="item, index in items" 
        :key="index"
        :id="index"
      >
        {{ item }}
      </li>
    </ul>
    
    <ul @click="select($event)">
      <li 
        v-for="item, index in items" 
        :key="index"
        :id="index"
      >
        {{ item }}
      </li>
    </ul>
    
    select($event) {
      console.log('Select ', $event.srcElement.id)
    }