react portals

React Portals为渲染子组件到父组件外部的DOM节点提供了方便。本文介绍了Portals的必要性,分析了常见实现Modal的缺陷,并提出使用Portals解决这些问题,详细阐述了如何在React应用中使用Portals创建Modal,确保其独立于组件层级渲染,避免样式冲突。
摘要由CSDN通过智能技术生成

在这里插入图片描述

写在前面

portal提供了一种将子节点渲染到存在于父组件以外的DOM节点的优秀方案

官方介绍

//portal提供了一种将子节点渲染到存在于父组件以外的DOM节点的优秀方案
ReactDOM.createPortal(child, container)
//第一个参数(child)是任何可渲染的React子元素(字符串或fragment)
//第二个参数container是一个DOM元素

为什么需要Portals

当你想把父组件的某个子组件渲染到页面中其它盒子(非父组件子树)里的时候,就用 portal

场景

写modal的时候

一般思路

可能很多同学会直接在JSX中把Modal画出来,像这样

<div class="modal">    
  <div> ... </div>    
    { needModal ? <Modal /> : null } 
</div>

缺陷

  • modal生成的代码会与JSX中的代码冗余在一起,而modal的显示位置大多情况是在中间位置,目前modal与其他组件冗余,我们需要CSS的position属性控制modal位置,就要求
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值