技术标签: react.js 前端 vue.js React
是一个内置组件,它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去
试想下面这样的 HTML 结构:
<div class="outer">
<h3>Tooltips with Vue 3 Teleport</h3>
<div>
<MyModal />
</div>
</div>
接下来我们来看看 的实现:
<script setup>
import {
ref } from 'vue'
const open = ref(false)
</script>
<template>
<button @click="open = true">Open Modal</button>
<div v-if="open" class="modal">
<p>Hello from the modal!</p>
<button @click="open = false">Close</button>
</div>
</template>
<style scoped>
.modal {
position: fixed;
z-index: 999;
top: 20%;
left: 50%;
width: 300px;
margin-left: -150px;
}
</style>
提供了一个更简单的方式来解决此类问题,让我们不需要再顾虑 DOM 结构的问题。让我们用 改写一下 :
<button @click="open = true">Open Modal</button>
<Teleport to="body">
<div v-if="open" class="modal">
<p>Hello from the modal!</p>
<button @click="open = false">Close</button>
</div>
</Teleport>
禁用 Teleport
在某些场景下可能需要视情况禁用 。举例来说,我们想要在桌面端将一个组件当做浮层来渲染,但在移动端则当作行内组件。我们可以通过对 动态地传入一个 disabled prop 来处理这两种不同情况。.
<Teleport :disabled="isMobile">
...
</Teleport>
多个 Teleport 共享目标
一个可重用的模态框组件可能同时存在多个实例。对于此类场景,多个 组件可以将其内容挂载在同一个目标元素上,而顺序就是简单的顺次追加,后挂载的将排在目标元素下更后面的位置上。
<Teleport to="#modals">
<div>A</div>
</Teleport>
<Teleport to="#modals">
<div>B</div>
</Teleport>
渲染的结果为:
<div id="modals">
<div>A</div>
<div>B</div>
</div>
index.js
import React from 'react'
import RenderPropDemo from './RenderPropDemo'
class AdvancedUse extends React.Component {
constructor(props) {
super(props)
}
render() {
return <div>
<PortalsDemo>Modal 内容</PortalsDemo>
</div>
}
}
export default AdvancedUse
PortalsDemo.js
import React from 'react'
import ReactDOM from 'react-dom'
import './style.css'
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
}
}
render() {
// // 正常渲染
// return <div className="modal">
// {this.props.children} {/* vue slot */}
// </div>
// 使用 Portals 渲染到 body 上。
// fixed 元素要放在 body 上,有更好的浏览器兼容性。
return ReactDOM.createPortal(
<div className="modal">
{
this.props.children} {
/* 类似vue slot */}
</div>,
document.body // DOM 节点 第二参数,表示要渲染到什么地方去
)
}
}
export default App
文章浏览阅读2k次,点赞17次,收藏14次。结果自动的进行了四舍五入分别详细讲解上面的四种方法,包括它们的原理、异同以及推荐使用的情况。fixedfixedsetf()综上所述,为了确保输出的一致性和准确性,推荐使用第一种或第二种方法,因为它们明确指定了固定点表示法和精度,能够更好地控制输出的格式。_c++保留小数点后几位怎么弄
文章浏览阅读496次。在gpio0的中断控制器为gic,在gic节点中#interrupt-cells属性被设置为3,这也就是为什么在gpio0节点中interrupts 属性有三个值,而ft5x06的中断控制器为gpio0,在gpio0节点中#interrupt-cells属性被设置为2,所以ft5x06节点的interrupts 属性只有两个值。中断信号源节点(例如设备节点或其他中断源节点)中的 interrupt-parent 属性用于指定中断信号源所属的中断控制器节点。中断信号源是产生中断的设备或其他中断源节点。_rk interrupts
文章浏览阅读482次。信号机制是 Linux 0.11 为进程提供的一套"局部的类中断机制",即在进程执行的过程中,如果系统发现某个进程接收到了信号,就暂时打断进程的执行,转而去执行该进程的信号处理程序,处理完毕后,再从进程"被打断"之处继续执行。_linux0.11 do_signal
文章浏览阅读843次。arm-linux-gcc: Command not found_arm-linux-gcc未找到命令怎么解决
文章浏览阅读98次。123456下列写法错误7下列写法错误转载于:https://www.cnblogs.com/anvivi/p/9695592.html_元素另外一个常见的用途是
文章浏览阅读1.9k次。这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。本周刊开源(GitHub: SoftwareTestingWeekly ),欢迎提交 issue,投稿或推荐软件测试相关的内容。科普将军赶路 不追小兔前几天在网上看到一句话,「将军赶路,不追小兔」,言简意赅,余音绕梁,发人深省。类似的还有:将军赶路,不打野兔。 将军赶路,不打小鬼。 将军有剑,不斩苍蝇。将军好忙。「将军」是一种身份的象征,他带领着军队是要打硬仗的,有远大的目标,「赶路」才是当前..
文章浏览阅读1.2k次。MTF的倾斜边缘法计算方法简介光学系统性能的衡量方法有很多,常见的有点扩散函数法、瑞利判断法、点列图法、光学传递函数(MTF)法等,其中MTF法在光学系统和镜头加工制造中使用最为广泛。MTF曲线真实的反映了成像系统将物方信息传递到像方的能力。MTF曲线的横坐标一般是cycle/mm或者linepair/mm[1][11],纵坐标是反映对比度传递特性的像/物方调制度的比值。MTF的计算方法有很多,比..._matlab斜边超采样得到esf
文章浏览阅读493次。在用户态应用程序处理的任务中,elf 加载运行是一个比较重要的步骤,下面就分析一下在 rt-smart 操作系统中,想要将一个应用程序运行起来要经过哪些步骤。ELF 格式介绍ELF 代表 Executable and Linkable Format。它是一种对可执行文件、目标文件和库使用的文件格式。它在 Linux 下成为标准格式已经很长时间,ELF 一个特别的优点在于,同一文件格式可以用于内核支..._rtt5.0 elf文件
文章浏览阅读460次,点赞9次,收藏9次。今天项目有需要动态设置ConstrainLayout这个布局的需求,在网上搜了一下,记录一下大致的流程和可能出现问题的点startID:要约束的目标控件id。startSide:要约束的目标控件的边界。endID:约束条件控件的id。endSide:endID的边界。int margin:间距。举个例子比如将view_divider的左边约束于tv_company_name的左边,就可以写成如果要相对父布局设置约束,可以写成要设置间距,添加一个margin参数即可其他方向的约束同理。 constra_android动态设置constraintset
文章浏览阅读341次。STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向对象的。为了具有_c++stl需要学吗
文章浏览阅读3.5k次,点赞11次,收藏9次。前面有篇文章讲过基于echarts的大屏可视化一些基础概念,其中提到和动画相关的插件有:lottie、gsap、svga等,本篇文章的主题是svga,但不是技术硬文,只是向大家介绍我最近写的一款工具——svga预览工具。正版软件会一直免费,所以请大家放心使用博主开发的正版软件。如果软件被破解,绕过通行码直接登录,后续对宿主机造成一切后果,请使用者自行承担。大家多多支持博主的公众号,新开小号,需要多多关注,拜谢大家:或者。_svga预览
文章浏览阅读8.2k次。下载软件:https://github.com/emqx/MQTTX/tags直接双击运行即可:新建连接:连接成功:_mqttx-setup