Vue 传送

传送元素的脚本和样式

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

示例

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

CompOne.vue:

<template>
  <div>
    <h2>组件</h2>
    <p>这是组件的内部。</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>
运行示例 »