Vue3中的teleport节点传送

本文介绍了Vue3中teleport组件的使用,包括如何通过ref动态定位目标节点,以及如何利用v-if实现节点的动态添加和删除。实例展示了teleport在实际项目中的灵活应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值