Teleport
传送门组件提供一种简洁的方式可以指定它里面内容的父元素,是一种能够将我们的模板移动到DOM中vue app其他位置的技术。
to:字符串类型,必需的prop。其值必须是有效的查询选择器或者HTML的元素名(如果在浏览器的环境中使用)。teleport组件的内容将被移动到指定的目标元素中。
disabled:布尔类型,可选的prop。disabled可以用于禁用teleport组件的功能,这意味着它的插槽内容将不会被移动到任何位置,而是在周围父组件中指定<teleport>的地方渲染。
在App.vue中引入teleportTest.vue组件
<template><img alt="Vue logo" src="./assets/logo.png" /><HelloWorld msg="Hello Vue 3.0 + Vite" /><TeleportTest></TeleportTest>
</template><script>
import HelloWorld from './components/HelloWorld.vue';
import TeleportTest from './components/teleportTest.vue';export default {name: 'App',components: {HelloWorld,TeleportTest},setup(){},methods:{}
}</script>
teleportTest.vue
<template><button @click="show = true">按钮</button><teleport to="todo"><div v-if="show"><div>我是传送门里面的内容</div><button @click="show=false">关闭</button></div></teleport>
</template><script>
export default {data () {return {show:false};},components: {},computed: {},methods: {}
}</script>
<style scoped>
</style>