Vue3中的Teleport(传送门)
2021-11-08 17:25
309 查看
动画片多啦A梦相信大家很多都看过,而且近几年又出现了相关的电影,作为小编一个男生来说,一直是对里面的静香念念不忘,有点跑偏了哈,今天小编介绍的Teleport就和多啦A梦的任意门一样,可以穿梭到任何的DOM中的任何地方
模态框一直是实际开发中用到比较多的功能之一,在没有各种各样的组件之前,我们需要通过css中的定位对元素进行修饰,有了Teleport,我们就可以这样实现一个简单的模态的组件
<style> .area{ position: absolute; left: 50%; top:50%; transform: translate(-50%,-50%);/* */ width: 200px; height: 300px; background:green; } .mask{ position: absolute; left:0; right:0; top:0; bottom:0; background: #000; opacity: 0.5; } </style> <script> const app = Vue.createApp({ data(){ return { show:false } }, methods:{ handleBtnClick(){ this.show = !this.show } }, template: `<div class="area"> <button @click="handleBtnClick">按钮</button> <teleport to="body"> <div class="mask" v-show="show"></div> </teleport> </div>` }) const vm = app.mount("#root") </script>
上面的例子是将元素传递到body中,如果要将元素传递到指定的DOM节点,我们要怎么处理呢?
我们通过Teleport中的to属性,可以将代码写成这样
<body> <div id="root"></div> <div id="hello"></div> </body> <script> const app = Vue.createApp({ data(){ return { show:false } }, methods:{ handleBtnClick(){ this.show = !this.show } }, template: `<div class="area"> <button @click="handleBtnClick">按钮</button> // 类似css选择器,根据DOM元素不同,通过to属性设置传送的位置 <teleport to="#hello"> <div class="mask" v-show="show"></div> </teleport> </div>` }) const vm = app.mount("#root") </script>
大家还可以扫描二维码,关注我的微信公众号,蜗牛全栈。
相关文章推荐
- 详解Vue3 Teleport 的实践及原理
- 详解Vue3中Teleport的使用
- vue3 teleport的使用案例详解
- Vue3 Teleport
- Linux世界开启传送门3-预备第1天
- Linux世界开启传送门5-预备第5天
- Linux世界开启传送门8-预备第5天
- 几个传送门。。
- NBUT 1120 Reimu's Teleport (线段树)
- 一个万能的传送门
- 使用Teleport下载网站
- 传送门
- teleport pro tppabs标签批量删除
- 小程序的安装和传送门
- 简简单单的Vue3(插件开发,路由系统,状态管理)
- vue3打包不显示问题
- Vue3 系统入门与项目实战
- Vue3中的计算属性
- VUE3 之 计算属性与侦听器
- VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手