当前位置: 首页 > article >正文

Vue3 -- 新组件【谁学谁真香系列6】

Teleport

Teleport是什么?–Teleport是一种能够将我们的组件html结构移动到指定位置的技术。
父组件:

<template>
  <div calss="outer">
    <h2>我是App组件</h2>
    <img src="https://z1.ax1x.com/2023/11/19/piNxLo4.jpg" alt="">
    <br>
    <Modal />
  </div>
</template>

<script lang="ts" setup name="App">
import {
    ref } from "vue"
import Modal from "./Modal.vue";

</script>

<style lang="less">
.outer {
   
  background-color: #ddd;
  border-radius: 10px;
  padding: 10px;
  width: 400px;
  height: 400px;
  // 滤镜 saturate--饱和度
  filter:saturate(200%)
}

img {
   
  width: 270px;
}

button {
   
  margin: 3px 5px;
}
</style>

注意看父组件中.outer的 filter:saturate(200%),这个样式会让子组件中的fixed定位基于自己的父组件,而不是按照我们的预期根据整个视口定位。
这时候我们就需要在子组件中使用Teleport了,将我们需要按照整个视口定位的内容用<teleport to=""> </teleport> 包裹起来就可以实现预期。

<!-- 这里的to里面可以写选择器字符串,例如'#app''.demo''body' -->
    <teleport to="body">
        <div class="modal" v-show="isShow">
            <h2>我是弹窗的标题</h2>
            <p>我是弹窗的内容</p>
            <button @click="isShow = false">关闭弹窗</button>
        </div>
    </teleport>

整个子组件代码:

<template>
    <button @click="isShow = true">展示弹窗</button>
    <!-- 这里的to里面可以写选择器字符串,例如'#app''.demo''body' -->
    <teleport to="body">
        <div class="modal" v-show

http://www.kler.cn/a/381838.html

相关文章:

  • Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)
  • Pion WebRTC 项目教程
  • android sqlite 数据库简单封装示例(java)
  • 在vscode的ESP-IDF中使用自定义组件
  • 活着就好20241225
  • 贪心算法(三)
  • Maven 插件
  • PHP查询实时股票行情
  • Unity3D学习FPS游戏(7)优化发射子弹(对象池版)
  • 【LeetCode】【算法】128. 最长连续序列
  • 【系统架构设计师】六、UML建模与架构文档化
  • 传智杯 第六届-复赛-第二场-B
  • Rust 跨平台构建与部署实战:构建并部署跨平台应用
  • SpringCloudGateway — 网关路由
  • 宝塔Linux面板安装PHP扩展失败报wget: unable to resolve host address ‘download.bt.cn’
  • VLAN高级+以太网安全
  • C++原创游戏宝强越狱第二季即将回归
  • Kafka 之消息广播消费
  • C++简单工厂模式
  • vue 3:监听器
  • Chrome与火狐哪个浏览器的性能表现更好
  • 计算机性能监控体系:Quark2.0
  • 用例设计方法之等价类划分法
  • Linux常用命令(你一定用得上!)
  • 基于Redis缓存机制实现高并发接口调试
  • 【大数据学习 | kafka】消费者的分区分配规则