ReactDOM.render(element, container[, callback])
ReactDOM.createPortal(child, container)
都是在提供的 container 里渲染 React 元素,第一个参数child
或element
是任何可渲染的React
元素。第二个参数container
是一个 真实的DOM
元素。
主要的区别在于:
(1)ReactDOM.render在首次调用时,会将容器节点里的所有DOM元素都替换,ReactDOM.createPortal是向container下插入一个子节点;
(2)ReactDOM.render会直接渲染成DOM元素,而ReactDOM.createPortal则是渲染出React元素,最终还是需要通过ReactDOM.render渲染成真实DOM;