Teleport 是什么
Teleport 是一种能够将我们的模板移动到 DOM 中 Vue app 之外的其他位置的技术。
如果我们嵌套在 Vue 的某个组件内部,那么处理嵌套组件的定位、z-index 和样式就会变得很困难。
使用Teleport 就可以方便的解决组件间 css 层级问题
————————————————
版权声明:本文为CSDN博主「前端打工人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43953518/article/details/109640198
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title> <script src="https://unpkg.com/vue@next"></script>
<style>
.area{
position: absolute;
left: 50%;
top: 10%;
transform: translateX(-50%,-50%);
width: 200px;
height: 400px;
background-color: aquamarine;
}
.mask{
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
background-color: #adadad;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app"></div>
<script>
const root = Vue.createApp({
data(){
return{
data:10,
show:false
}
},
methods:{
btnClick(){
console.log('12')
this.show = true
}
},
template:`
<div class='area'>
<button @click='btnClick'> 按钮 </button>
<teleport to='body'>
<div class='mask' v-show='show'></div>
</teleport>
</div>
`
})
root.mount('#app')
</script>
</body>
</html>
浙公网安备 33010602011771号