美文网首页Vue生态圈Vue.js
vue中巧用事件委托

vue中巧用事件委托

作者: 知足常乐晨 | 来源:发表于2019-05-05 10:07 被阅读4次

    项目中遇到大量的button需要添加同一个@click事件,如果给每一个button都添加@click事件,这么多的监听从性能上来说是不太好的,所以后来改进了一下,我们使用js的事件委托机制,实现如下:

        <div class="rightBtn" @click="filterAnimal($event)">
          <div class="Icon right80" style="top:200px;">
            <span class='IconDuck' data-index="秋沙鸭"></span>
            <span class="IconTextEven">秋沙鸭</span>
          </div>
          <div class="Icon right50" style="top:265px;">
            <span class='IconSheep' data-index="盘羊"></span>
            <span class="IconTextOdd">盘羊</span>
          </div>
          <div class="Icon right80" style="top:330px;">
            <span class='IconLin' data-index="藏原羚"></span>
            <span class="IconTextEven">藏原羚</span>
          </div>
        ...
        </div>
    
    <script> 
    ...
        filterAnimal(e){
          let dom = e.target;
          let index = dom.getAttribute("data-index");
          console.dir(index);
        },
    ...
    </script> 
    

    通过e.target获取当前点击的元素之后,获取data-index参数的值,既可知道点击的是哪个button了。

    相关文章

      网友评论

        本文标题:vue中巧用事件委托

        本文链接:https://www.haomeiwen.com/subject/bapbiqtx.html