vue3.js
teleport 是vue3新增的一个功能, 叫传送器,
作用: 把组件模板内的元素渲染到组件模板外部
特点: 传送的是dom元素不是数据, 通过修改DOM元素位置实现
<style>.alert{width: 100vw; height: 100vh;background-color: #000b;position: absolute;top: 0; left: 0;display: flex;justify-content: center;align-items: center;z-index: 10000;}.alert h1{background-color: white;width: 50vw; height: 50vh;line-height: 100px;}#myApp{position: relative;z-index: 1;}#mydom{position: relative;z-index: 2;}/* 此时, 上边设置的样式结果: alert自定义弹窗无法覆盖mydom */</style><body><script src='./vue3.js'></script><div id='myApp'><button @click="count=!count">{{count}}</button><teleport to='#outer'><h1 v-show="count">这是一个警告框</h1></teleport><!-- 一个模板中可以有多个传送器 --><teleport to='body'><div v-show="count" class="alert"><h1>这是一个警告框</h1></div></teleport></div><h1 id="mydom"><hr><button> 这是组件模板外部的DOM结构 </button><hr></h1><div id="outer"></div><script>var vm = {setup() {const count = Vue.ref(false)return{count}}}Vue.createApp(vm).mount('#myApp')</script></body>
