您的位置:首页 > 房产 > 家装 > React@16.x(17)Portals

React@16.x(17)Portals

2024/12/23 8:09:38 来源:https://blog.csdn.net/qq_40147756/article/details/139198563  浏览:    关键词:React@16.x(17)Portals

目录

  • 1,使用
  • 2,事件冒泡

一句话总结:和 Vue3 的 Teleport 一个效果。

1,使用

import React, { PureComponent } from "react";
import ReactDOM from "react-dom";// 返回一个 React 元素(ReactNode)
const ChildA = ReactDOM.createPortal(<h2 className="portal">标题2</h2>, document.body);export default class App extends PureComponent {render() {return (<div className="outer"><h1>标题1</h1>{ChildA}</div>);}
}

渲染后的 DOM 结构:

在这里插入图片描述

2,事件冒泡

增加一个事件:

export default class App extends PureComponent {render() {return (<divclassName="outer"onClick={(e) => {console.log(e.target);}}><h1>标题1</h1>{ChildA}</div>);}
}

点击2个标题的打印效果:

在这里插入图片描述

原因

  1. React中的事件是包装过的;
  2. 它的事件冒泡是根据虚拟DOM树来冒泡的,与真实的DOM树无关

以上。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com