因为 modal 需要 mount 到对应的目标节点上去, 使用比如 ReactDOM.render或者 ReactDOM.unstable_renderSubtreeIntoContainer进行挂载,在比较 https://reactjsnews.com/modals-in-react 一文中提到的多种 modal 的实现,对于目标节点的处理主要有三种:
注:此处的目标节点是指 ReactDOM.unstable_renderSubtreeIntoContainer(this, component, containerNode) 中的 containerNode
- 像 react modal (https://reactcommunity.org/react-modal/) 关闭modal 后即移除,目标节点保持、不移除
- 像 react bootstrap 中的 modal (http://react-bootstrap.github.io/components.html#modals) 对目标节点,关闭modal 后即移除
- 像 boron(http://madscript.com/boron/) 等这类直接挂在原本的 dom tree 中,然后只需要移除对于 modal 节点即可
所以说对于 modal 的最佳实践来说,究竟需不需要移除呢?
此外,对于第三种实现,该实现是否有可能会影响布局,因为挂载在原本的 dom tree 中?