Vue3中的teleport节点传送

更新日期: 2022-06-22阅读量: 35标签: 节点

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');



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>


链接: https://www.fly63.com/article/detial/11784

Vue 实现点击空白处隐藏某节点(三种方式:指令、普通、遮罩)

在项目中往往会有这样的需求: 弹出框(或Popover)在 show 后,点击空白处可以将其 hide。 针对此需求,整理了三种实现方式,大家按实际情况选择。我们做项目肯定会用到 UI 框架,常见的 Element 中的组件提供了这样的方法

JavaScript中如何添加文本节点?

在javascript中提供了很多操作DOM文档的方法,当然也包括创建一个节点,下面我们来看一下JavaScript如何创建一个创建一个文本节点(text)。

一个 Vue 模板可以有多个根节点(Fragments)?

如果我们试图创建一个没有根节点的Vue模板,比如这样:通常,我们通过在最外层包裹一层 div 来解决这个问题,但这个div元素一般没有啥使用,就是让模板符合单根需求。

Js中nodevalue返回的是什么?

在JavaScript中,nodeValue属性用于根据节点的类型设置或返回节点的值,该属性的值取决于节点的类型(nodeType)。下面本篇文章就来给大家介绍一下nodeValue属性,希望对大家有所帮助。

nodetype中值1、2、3分别代表什么意思

JavaScript中的所有节点类型都继承自Node类型,因此所有节点类型都共享相同的基本属性和方法。每个节点都有一个nodeType属性,用于表明节点的类型。

IntersectionObserver的rootMargin使用注意

rootMargin设置不一定会有效,有效的几个情况如下:1.设置了overflow的父级节点+rootMargin,如下,2.如果不设置root,即想要交叉对象是窗口的时候,需要去除滚动的父级节点,将html、body的overflow也去除(也去除的意思是不要设置),如下

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!