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

20. Portals和Fragment

3. Portals和Fragment

  • 3.1. Portals的使用
      1. 某些情况下,我们希望先渲染的内容独立于父组件,甚至是独立于当前挂载到的DOM元素中(默认都是挂载到id为root的DOM元素上)。
      1. Portal提供了一种将子节点渲染到存在于父组件以外的DOM节点的优秀的方案:
      • 2.1. 第一个参数(child)是任何可渲染的React子元素,例如一个元素,字符串或Fragment。
      • 2.2. 第二个参数(container)是一个DOM元素。
      • 2.3. 示例代码如下:
          ReactDOM.createPortal(children, container) 
        
      1. 通常来讲,当你从组件的render方法返回一个元素时,该元素将被挂载到DOM节点中离其最近的父节点;
      1. 然而,有时候将子元素插入到DOM节点中的不同位置也是有好处的
        外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  • 3.2. Portals应用(Modal组件案例)
      1. 比如说,我们准备开发一个Modal组件,它可以将它的子组件渲染那到屏幕的中间位置
      1. 步骤一:修改index.html添加新的节点
      1. 步骤二:编写这个节点的样式
      1. 步骤三:编写Modal组件代码
        <div id="root"></div><div id="modal"></div>
      
        #modal {position: fixed;left: 50%;top: 50%;transform: translate(-50%, -50%)}
      
        import React, { PureComponent } from 'react'import { createPortal } from 'react-dom'export class Modal extends PureComponent {render() {return createPortal(this.props.children, document.querySelector('#modal'))}}export default Modal
      
  • 3.3. Fragment
      1. 在之前的开发中,我们总是在一个组件中返回内容时包裹一个div元素:
        外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
      1. 我们又希望可以不渲染这样一个div应该如何操作呢?
      • 2.1. 使用Fragment
      • 2.2. Fragment允许你将子列表分组,而无需向DOM添加额外的节点
      1. React还提供了Fragment的短语发:
      • 他看起来像一个空标签:<> </>
      • 但是,如果我们需要再Fragment中添加key或者其他属性,那么就不能使用短语语法
http://www.dtcms.com/a/553049.html

相关文章:

  • 企业网站管理wordpress必备插件
  • 数据结构之栈和队列-栈
  • 操作系统-线程
  • sward零基础学习,创建第一个知识库
  • 门户网站建设方式网站制作叫什么
  • step-ca 证书生成完整步骤指南
  • 从字节码生成看 Lua VM 前端与后端协同:编译器与执行器衔接逻辑
  • SQLite3语句以及FMDB数据存储初步学习
  • 抽奖网站怎么制作长沙人力资源招聘网
  • IntelliJ IDEA 远程断点调试完全指南
  • uniapp使用sqlite模块
  • Lua--数据文件和持久性
  • Spark SQL 解锁电商数据密码:窗口函数大显身手
  • 用R语言生成指定品种与对照的一元回归直线(含置信区间)
  • NVR(网络视频录像机)和视频网关的工作方式
  • 如何架设网站服务器网络搭建百度百科
  • opencv 学习: 04 通过ROI处理图片局部数据,以添加水印为例
  • 中小企业网站模板诚信网站平台建设方案
  • chatgpt崩溃了,gpt怎么了
  • [MySQL] 页与索引
  • 2025年AI生成PPT工具评测:以“全链路一体化服务能力”为尺,ChatPPT再登顶
  • 天津特定网站建设推广搜素引擎优化
  • 直播美颜sdk特效功能架构全解析:从图像处理到AI渲染的技术演进
  • 2025强网杯web wp
  • 超融合架构下,如何智能调度让每台虚拟机都“跑得更快”?
  • 【Web应用安全】SQLmap实战DVWA SQL注入(从环境搭建到爆库,完整步骤+命令解读)
  • 从零打造 Telegram 中文生态:界面汉化 + 中文Bot + @letstgbot 搜索引擎整合实战
  • QT 给Qimage数据赋值,显示异常,像素对齐的坑
  • wordpress 整站下载万江做网站
  • 谈谈设计和建设网站体会摄影网站建设的功能有哪些