haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……
http://www.h-camel.com
MIT License
25.47k stars 3.26k forks source link

[react] 请说说react中Portal是什么? #687

Open wwwind213 opened 5 years ago

wwwind213 commented 5 years ago

[react] 请说说react中Portal是什么?

liuruomu commented 4 years ago

传送门(真传送门)https://zhuanlan.zhihu.com/p/29880992

vkboo commented 3 years ago

核心API是ReactDOM.createPortal(ReactNode, DOMContainer),返回值是一个ReactNode。返回的ReactNode需要在组件的render函数(函数式组件的返回值)中进行渲染,createPortal接受的ReactNode将会挂载到DOMContainer这个元素上,和render函数中的树结构不一致;但是,从React的角度看,createPortal的节点依然保持render函数的树形结构,Props、Context等特性可以正常的通过负责组件传递到portal组件中。