【React】portal

createPortal 允许你将 JSX 作为 children 渲染至 DOM 的不同部分。

createPortal(children, domNode, key?)

使用 portal 渲染模态对话框

import NoPortalExample from "./components/NoPortalExample";
import PortalExample from "./components/PortalExample";function App() {return (<div className="App"><div className="clipping-container"><NoPortalExample  /></div><div className="clipping-container"><PortalExample /></div></div>);
}export default App;
import React from 'react';function ModalContent({ onClose }) {return (<div><div>这是一个对话模态框</div><button onClick={onClose}>关闭</button></div>);
}export default ModalContent;
import React, {useState} from 'react';
import ModalContent from "./ModalContent";function NoPortalExample(props) {const [showModal, setShowModal] = useState(false)return (<div><button onClick={() => setShowModal(true)}>不使用 portal 展示模态</button>{showModal && (<ModalContent onClose={() => setShowModal(false)} />)}</div>);
}export default NoPortalExample;
import React, {useState} from 'react';
import ModalContent from "./ModalContent";
import {createPortal} from "react-dom";function PortalExample(props) {const [showModal, setShowModal] = useState(false);return (<div><button onClick={() => setShowModal(true)}>使用 portal 展示模态</button>{showModal && createPortal(<ModalContent onClose={() => setShowModal(false)} />,document.body)}</div>);
}export default PortalExample;

image.png

image.png

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手在Temu上怎样上架商品?

作为新手卖家&#xff0c;学习如何在Temu上架商品是一个重要的步骤。Temu是海外版拼多多&#xff0c;受到了很多卖家的欢迎。在这篇文章中&#xff0c;我们将介绍如何在Temu上架商品的步骤&#xff0c;以帮助新手顺利开始在线销售。 一、Temu上架商品的步骤&#xff1a; 第一…

JVM(11):虚拟机性能分析和故障解决工具之jstack工具

1 jstack(Stack Trace forJava)作用 查看或导出 Java 应用程序中线程堆栈信息 。 线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合&#xff0c;生成线程快照的主要目的是定位线程出现长时间停顿的原因&#xff0c;如线程间死锁、死循环、长时间等待外部资源等…

案例:MySQL主从复制与读写分离

一、案例分析 1.案例概述 在实际的生产环境中&#xff0c;如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此&#xff0c;一般来说都是通过主从复制(Master-Slave)来同步数据&#xff0c;再通…

uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)

vite 中使用 /deep/ 进行样式穿透报错 原因&#xff1a;vite 中不支持&#xff0c;换成 ::v-deep 或:deep即可

python setup函数中,name参数的作用

setup函数是setuptools库中的一个函数&#xff0c;用于配置和分发Python软件包。 setup函数的name参数指定了该软件包的名称&#xff0c;这个名称在包发布到PyPI&#xff08;Python Package Index&#xff09;时会作为该包的标识符。其他开发者可以通过这个名称来安装和使用你…

C语言 求最大公约数和最小公倍数

这个程序定义了两个函数&#xff0c;一个用于计算两个正整数的最大公约数 (GCD)&#xff0c;另一个用于计算最小公倍数 (LCM)。在主函数中读取用户输入的两个正整数&#xff0c;并调用这两个函数输出结果。 #include <stdio.h>// 计算最大公约数的函数&#xff0c;使用辗…

[大师C语言(第四十篇)]C语言volatile关键字深度解析与实战技巧

第一部分&#xff1a;C语言volatile关键字深度解析 一、volatile关键字的作用 在C语言中&#xff0c;volatile关键字是一个用于声明变量的修饰符。它用于指定一个变量的值在程序执行过程中可能会被外部设备或中断服务程序修改&#xff0c;因此编译器不应该对这样的变量进行优…

浅谈人工智能发展趋势

第三次浪潮 人类科技发展的主线正沿着“能源”和“新型”展开。AI的尽头是光伏和储能。 如今我们正在经历第三次浪潮——信息文明。 社会生产力 劳动对象 劳动工具 劳动者 生产要素 农业文明铜器铁器 材料 人力工具 农民 土地人力 工业文明机车电力 材料动力 动力…

判断一个函数是否有装饰器

判断一个函数是否有装饰器 如何判断一个函数是否有装饰标记&#xff0c;如果有我们在pytest收集用例的时候能做一些什么操作呢 def my_decorator(func):def wrapper(*args, **kwargs):print("Function is being decorated!")return func(*args, **kwargs)return wr…

Java web应用性能分析之【prometheus监控K8s指标说明】

常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态&#xff08;正常、不可达、未知&#xff09;节点的资源使用率&#xff08;CPU、内存、IO等&#xff09; 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…

springboot try...catch 影响事务回滚

示例 事务不会回滚 OverrideTransactional(rollbackFor Exception.class)public CommonResponse modifyTeaFormula(GemiTeaFormulaReq gemiTeaFormulaReq) {try {省略部分代码teaFormulaDao.deleteById(id);teaFormulaDetailDao.deleteById(id);} catch (Exception e) {logger…

Calendar类在Java中的高级应用与使用技巧

Calendar类在Java中的高级应用与使用技巧 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; **1. **引言 在Java中&#xff0c;处理日期和时间是开发中经常遇到…

2024 vue3入门教程:01vscode终端命令创建第一个vue项目

参考vue官网手册&#xff1a;https://cn.vuejs.org/guide/quick-start.html 一、找个盘符&#xff0c;新建文件夹存储以后得vue项目 我的是e盘下创建了vueproject 二、使用vscode打开存储vue项目的文件夹 因为我生成过项目&#xff0c;所以有文件&#xff0c;你们初次是没有…

IT专业入门,高考假期预习指南

文章目录 一、了解IT专业的基本概念二、选择适合的编程语言入门三、掌握基本的编程工具和环境四、学习基础的数据结构和算法五、实践项目和动手实验六、利用在线资源进行学习七、参加编程竞赛和社区活动总结 高考结束后&#xff0c;许多同学将迎来大学生活&#xff0c;而对于选…

C++将模板类用作参数

#include <iostream> // 包含头文件。 using namespace std; // 指定缺省的命名空间。template <class T, int len> class LinkList // 链表类模板。 { public:T* m_head; // 链表头结点。int m_len len; // 表长。void…

mysql的前缀索引

什么是前缀索引 所谓的前缀索引&#xff0c;说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定)&#xff0c;比如以产品名称的前10位来建索引&#xff0c;这样建立起来的索引更小&#xff0c;查询效率更快有点类似oracle中对字段使用left函数来建立函数索…

Java与机器学习模型的集成与部署

Java与机器学习模型的集成与部署 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨如何使用Java集成和部署机器学习模型。 随着人工智能和机器学习…

【SQL】使用索引的好处

使用索引可以显著加快查询速度&#xff0c;主要原因有以下几个方面&#xff1a; 1. 减少数据扫描量 索引类似于一本书的目录&#xff0c;可以让数据库快速找到特定的数据行&#xff0c;而不是从头到尾扫描整个表。例如&#xff0c;没有索引的情况下&#xff0c;查询 SELECT *…

简洁版人工智能训练流程

人工智能&#xff08;AI&#xff09;训练流程是指使用数据来训练机器学习模型&#xff0c;使其能够执行特定任务的过程。以下是人工智能训练的一般流程&#xff1a; #mermaid-svg-qZ5c5PU9yms7cVOB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:…

Java中如何优雅地处理NamingException异常?

Java中如何优雅地处理NamingException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java开发中&#xff0c;NamingException异常是JNDI&…