标签: reactjs
这点我目前还不清楚,而且我找不到任何有关它的文档。
要卸载React组件时(即调用componentWillUnmount),是否可以保证所有后代都可以正确卸载(因此也调用componentWillUnmount)?
componentWillUnmount
换句话说,在卸载阶段,整个层次结构(在起始节点下)将被遍历,还是只是要删除的确切节点?
答案 0 :(得分:1)
是的,这是在对帐过程中完成的。
React将以递归方式装载,更新和卸载子组件 如所须。该过程确定为基础虚拟DOM组件后, React更新实际的DOM。 当父组件不再是组件时,将卸载组件 渲染或父组件执行的更新不 渲染此实例。 ReactDOM.unmountComponentAtNode也将 触发卸载。
React将以递归方式装载,更新和卸载子组件 如所须。该过程确定为基础虚拟DOM组件后, React更新实际的DOM。
当父组件不再是组件时,将卸载组件 渲染或父组件执行的更新不 渲染此实例。 ReactDOM.unmountComponentAtNode也将 触发卸载。
可以找到参考文献here
此外,React对于复合和DOM组件具有不同的过程:
child.unmount()
请参阅React的实现细节here