Portals 是一种让 children 可以 render 到
parent component DOM 树以外 DOM 节点的方法,
适合拿来做弹窗等许多地方都会用到的组件。
ReactDOM.createPortal(child, container)
createPortal 方法在
react-dom
而非react
里面
React 不会建立一个新的 div,
而是把第一个引数的子元素
渲染到 container 中。
import { createPortal } from 'react-dom'
const PortalsComponent = () =>{
return createPortal(
<div>我是一些文字</div>,
document.getElementById('root')
)
}
class PortalsExample extends Component{
render(){
return(
<>
<PortalsComponent />
</>
)
}
}
export default PortalsExample
以下弹窗回传的是一个
createPortal
所产生的元素
import React, { Component } from 'react';
import { createPortal } from 'react-dom'
import style from './style/modal.module.scss'
class PopUp extends Component {
render(){
return createPortal(
<div className={style.modal}>
{this.props.children}
</div>,
document.getElementById('root')
)
}
}
export default PopUp
在而任意地方使用 <PopUp>
都不会受到父元件的影响
而是会 render 在根元素(#root
)底下。
<PopUp>我是弹窗内容</PopUp>
不管某个 children component 是不是用 Portal 建立的
Parent component 都一样可以捕捉
从底下元件 bubble 上来的 event
<<: Day13-Kubernetes 那些事 - Deployment 与 ReplicaSet(一)
>>: Day 28 - Build a Experimental Video Speed Controller UI
单行文字方块(text) 让使用者输入单行的文字叙述,例如:姓名、地址、电话、信箱等等 使用<...
因作业缘故,上网找了打击砖块的游戏,需要加入自己的元素进去 目前想法是增加击中第五球後球速变快,但在...
在开始开发金流外挂的後台设定页面前,我们先来快速认识一下 WordPress 的资料表,同时介绍读取...
正文: 利用 UserDefault 储存资料 预览图: 程序码: import UIKit cla...
今天要跟大家介绍不是技术,但是蛮重要问题处理流程与纪录功能,这也是 Zabbix 本身就有的功能~ ...