• Vue事件符.capture的含义用法


    vue事件符的.capture用法,含义是捕获。

    先看一个4层结构的div盒子:div(最外层) > div(爷爷) > div(父亲) > div(儿子)

     

    <template>
      <div>
        <div @click="handleCatch('最外层')">
          最外层
          <div @click="handleCatch('抓到了爷爷')">
            抓到了爷爷
            <div @click="handleCatch('抓到了父亲')">
              抓到了父亲
              <div @click="handleCatch('抓到了儿子')">抓到了儿子</div>
            </div>
          </div>
        </div>
      </div>
    </template>
    <script>
    
    export default {
      methods: {
        handleCatch(msg) {
          console.log(msg)
        }
      }
    }
    </script>
    <style lang="scss" scoped>
    
    </style>

     点击最里层儿子,则会冒泡打印输出输出为

    现在给@click添加.capture修饰符

    一、首先添加单个.capture给每层盒子,点击“儿子”看效果

    <div @click="handleCatch('最外层')">
          最外层
          <div @click="handleCatch('抓到了爷爷')">
            抓到了爷爷
            <div @click.capture="handleCatch('抓到了父亲')">
              抓到了父亲
              <div @click="handleCatch('抓到了儿子')">抓到了儿子</div>
            </div>
          </div>
        </div>

     点击“儿子”看效果

     

     2. 给爷爷加

    <div @click="handleCatch('最外层')">
          最外层
          <div @click.capture="handleCatch('抓到了爷爷')">
            抓到了爷爷
            <div @click.capture="handleCatch('抓到了父亲')">
              抓到了父亲
              <div @click="handleCatch('抓到了儿子')">抓到了儿子</div>
            </div>
          </div>
        </div>

     点击“儿子”看效果

     

     3. 给最外层加

    <div @click.capture="handleCatch('最外层')">
          最外层
          <div @click.capture="handleCatch('抓到了爷爷')">
            抓到了爷爷
            <div @click.capture="handleCatch('抓到了父亲')">
              抓到了父亲
              <div @click="handleCatch('抓到了儿子')">抓到了儿子</div>
            </div>
          </div>
        </div>

    点击“儿子”看效果

    总结:

         1. 冒泡是从里往外冒,捕获是从外往里捕。

         1. 当捕获存在时,先从外到里的捕获,剩下的从里到外的冒泡输出。

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    POJ 1300 Open Door
    POJ 2230 Watchcow
    codevs 1028 花店橱窗布置
    codevs 1021 玛丽卡
    codevs 1519 过路费
    codevs 3287 货车运输
    codevs 3305 水果姐逛水果街二
    codevs 1036 商务旅行
    codevs 4605 LCA
    POJ 1330 Nearest Common Ancestors
  • 原文地址:https://www.cnblogs.com/yeminglong/p/15165686.html
Copyright © 2020-2023  润新知