vue/组件化/Teleport组件

101 阅读1分钟

要解决的问题

为了让组件能在所有dom元素的最顶层出现,覆盖其他组件。这是常见的业务场景,比如弹窗。

Teleport组件的作用

Vue.js 3 内建了 Teleport 组件。该组件可以将指定内容渲染到特定容器中,而不受 DOM 层级的限制。

api说明

interface TeleportProps {
  /**
   * 必填项。指定目标容器。
   * 可以是选择器或实际元素。
   */
  to: string | HTMLElement
  /**
   * 当值为 `true` 时,内容将保留在其原始位置
   * 而不是移动到目标容器中。
   * 可以动态更改。
   */
  disabled?: boolean
}

测试代码

<teleport to="#some-id" >1</teleport>
<teleport to=".some-class" >2</teleport>
<teleport to="[data-teleport]" >3</teleport>