3.3 Portals
React 16的Portals特性讓我們可以把組件渲染到當前組件樹以外的DOM節點上,這個特性典型的應用場景是渲染應用的全局彈框,使用Portals后,任意組件都可以將彈框組件渲染到根節點上,以方便彈框的顯示。Portals的實現依賴ReactDOM的一個新的API:

第一個參數child是可以被渲染的React節點,例如React元素、由React元素組成的數組、字符串等,container是一個DOM元素,child將被掛載到這個DOM節點。
我們創建一個Modal組件,Modal使用ReactDOM.createPortal()在DOM根節點上創建一個彈框:

在App中使用Modal:

本節項目源代碼的目錄為/chapter-03/react16-portals。