Vue3系列(十三)Composition Api之Teleport 传送组件

94 阅读1分钟

简介

<Teleport> 是一个内置组件,它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去;也就是你可以把指定的内容传送到指定的位置

使用

<Teleport>接收一个 to 属性 值可以为选择器id 类名标签名

<template>
  <Teleport to="body">
    <!--> 弹窗将会插入到body下 <--!>
    <el-dialog></el-dialog>
  </Teleport> 
</template>

此外,<Teleport>通过diabled控制to属性的启用还是失效, 值为 true 或 false

<teleport :disabled="true" to='body'>
  <el-dialog></el-dialog>
</teleport>

多个 Teleport 共享目标

一个可重用的模态框组件可能同时存在多个实例。对于此类场景,多个 <Teleport> 组件可以将其内容挂载在同一个目标元素上,而顺序就是简单的顺次追加,后挂载的将排在目标元素下更后面的位置上。

<Teleport to="#modals">
  <div>A</div>
</Teleport>

<Teleport to="#modals">
  <div>B</div>
</Teleport>

渲染的结果为:

<div id="modals">
  <div>A</div>
  <div>B</div>
</div>