Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Vue 教程

Vue 主页 Vue 简介 Vue 指令 Vue v-bind Vue v-if Vue v-show Vue v-for Vue 事件 Vue v-on Vue 方法 Vue 事件修饰符 Vue 表单 Vue v-model Vue CSS 绑定 Vue 计算属性 Vue 侦听器 Vue 模板

扩展 规模

Vue 为什么,如何以及设置 Vue 第一个 SFC 页面 Vue 组件 Vue 属性 Vue v-for 组件 Vue $emit() Vue 透传属性 Vue 作用域样式 Vue 本地组件 Vue 插槽 Vue v-slot Vue 作用域插槽 Vue 动态组件 Vue 传送门 Vue HTTP 请求 Vue 模板引用 Vue 生命周期钩子 Vue Provide/Inject Vue 路由 Vue 表单输入 Vue 动画 Vue 使用 v-for 的动画 Vue 构建 Vue Composition API

Vue 参考

Vue 内置属性 Vue 内置组件 Vue 内置元素 Vue 组件实例 Vue 指令 Vue 实例选项 Vue 生命周期钩子

Vue 示例

Vue 示例 Vue 练习 Vue 测验 Vue 服务器 Vue 证书

Vue 传送门

Vue <Teleport> 标签用于将内容移动到 DOM 结构中的不同位置。

<Teleport> 和 'to' 属性

要将某些内容移动到 DOM 结构中的其他位置,我们使用 Vue <Teleport> 标签围绕内容,并使用 'to' 属性定义要移动到的位置。

<Teleport to="body">
  <p>Hello!</p>
</Teleport>

'to' 属性值以 CSS 表示法给出,因此如果我们想将某些内容发送到 body 标签,就像上面的代码一样,我们只需编写 <Teleport to="body">

我们可以看到内容在页面加载后通过检查页面被移动到 body 标签。

示例

CompOne.vue:

<template>
  <div>
    <h2>Component</h2>
    <p>This is the inside of the component.</p>
    <Teleport to="body">
      <div id="redDiv">Hello!</div>
    </Teleport>
  </div>
</template>
运行示例 »

如果我们右键单击我们的页面并选择“检查”,我们可以看到红色 <div> 元素被移出组件并移动到 <body> 标签的末尾。

例如,我们也可以有一个带有 id 的标签 <div id="receivingDiv"> 并通过使用 <Teleport to="#receivingDiv"> 围绕我们要传送/移动的内容将某些内容传送/移动到该 <div>


传送元素的脚本和样式

即使某些内容使用 <Teleport> 标签从组件中移出,组件中 <script><style> 标签中的相关代码仍然适用于移动的内容。

示例

来自 <style><script> 标签的相关代码仍然适用于传送的 <div> 标签,即使它在编译后不再位于组件内部。

CompOne.vue:

<template>
  <div>
    <h2>Component</h2>
    <p>This is the inside of the component.</p>
    <Teleport to="body">
      <div 
        id="redDiv" 
        @click="toggleVal = !toggleVal" 
        :style="{ backgroundColor: bgColor }"
      >
        Hello!<br>
        Click me!
      </div>
    </Teleport>
  </div>
</template>

<script>
export default {
  data() {
    return {
      toggleVal: true
    }
  },
  computed: {
    bgColor() {
      if (this.toggleVal) {
        return 'lightpink'
      }
      else {
        return 'lightgreen'
      }
    }
  }
}
</script>

<style scoped>
#redDiv {
  margin: 10px;
  padding: 10px;
  display: inline-block;
}

#redDiv:hover {
  cursor: pointer;
}
</style>
运行示例 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.