react—portal
/*
全局 modal 组件
zindex 层级问题
样式覆盖问题
所以我们选择挂载 body 上
portal 组件嵌套结构没有发生改变,只是 dom 的渲染位置变了
portal 处理过的组件虽然 dom 渲染结构发生改变但是依然可以按照 组件嵌套结构进行冒泡
*/
在需要的子组件中引入插件
import ReactDOM from "react-dom";
将子组件做处理,并抛出
class Modal extends PureComponent {
constructor() {
super();
}
state = {};
render() {
return (
<div
className="model"
style={{
position: "fixed",
top: 0,
left: 0,
right: 0,
bottom: 0,
background: "rgba(0,0,0,.6)",
display: "flex",
justifyContent: "center",
alignItems: "center",
}}
>
loading
<button onClick={this.props.close}>关闭</button>
</div>
);
}
componentDidMount() {}
}
class Box extends PureComponent {
render() {
return ReactDOM.createPortal(
<Modal close={this.props.close}></Modal>,
document.body
);
}
}
export default Box;