• Vue3中的teleport节点传送


    Vue3 teleport官方文档地址:https://vuejs.org/guide/built-ins/teleport.html

    Vue3中的teleport API极大方便了在Vue3业务逻辑中操作移动Dom位置。

    简单举例

    <script setup lang="ts">
        // 控制节点
        let teleportToTarget = ref<string>('#idtest');
    </script>
    <template>
        <div id="idTest">id节点1</div>
        <div class="main">main节点1</div>
        <div class="main">main节点2</div>
        
        <teleport  :to="teleportToTarget">
            <div>传送节点</div>
        </teleport>
    </template>
    

    1.当teleportToTarget 为#idTest时,节点会被传输到 #idTest 节点中,等同于

    // let teleportToTarget = ref<string>('#idtest');
    <template>
        <div id="idTest">
            id节点1<div>传送节点</div>
        </div>
        <div class="main">main节点1</div>
        <div class="main">main节点2</div>
    </template>
    

    2.当teleportToTarget 为.main时,节点会被传输到 .main时 节点中,多个class同名,默认会传输到第一个节点中。等同于

    // let teleportToTarget = ref<string>('.main');
    <template>
        <div id="idTest">id节点1</div>
        <div class="main">
            main节点1
            <div>传送节点</div>
        </div>
        <div class="main">main节点2</div>
    </template>
    

    3.当teleportToTarget 为body时,节点会被传输到html元素的body节点末尾中。

    // let teleportToTarget = ref<string>('body');
    

    image.png

    4.删除节点

    需要动态删除节点,只需要用v-if动态控制节点存在,dom节点会动态跟随teleportToTargetShow布尔值动态是否存在。

    <script setup lang="ts">
        // 控制节点
        let teleportToTarget = ref<string>('#idtest');
        // 控制传输节点是否存在
        let teleportToTargetShow = ref<boolean>(true);
    </script>
    <teleport v-if="teleportToTargetShow" :to="teleportToTarget">
       <div>传送节点</div>
    </teleport>
    
  • 相关阅读:
    C89:论内存泄漏
    C++03:模板
    C++的STL(标准模板库)系列:容器——string容器
    C++03:论类的友元函数和内联函数
    C++03:论类的运算符重载
    Windows开发:网络编程基础
    Windows开发:论文件和权限
    C89:头文件
    C89:论符号
    纪录片(深度好片)
  • 原文地址:https://www.cnblogs.com/tianmiaogongzuoshi/p/16398965.html
Copyright © 2020-2023  润新知