来自官方教程:
componentWillUnmount()
在卸载和销毁组件之前立即调用。在此方法中执行任何必要的清理,例如使计时器无效、取消网络请求或清理在componentDidMount
中创建的任何 DOM 元素
我理解“使计时器无效”。 fetch
可以用 AbortController
中止。但我不明白“清理在 componentDidMount
中创建的任何 DOM 元素”,我可以看到这种情况的示例吗?
原文由 Ali Ankarali 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果网络请求发送库支持中止正在进行的网络请求调用,你绝对可以在
componentWillUnmount
方法中调用它。然而,关于清理
DOM
元素是值得关注的。根据我目前的经验,我将举几个例子。第一个是——
在这里,我删除了我在安装组件时添加的点击事件监听器。
第二个是——
在这里,我试图将
d3.js
与 react 集成到componentWillUnmount
中;我正在从 DOM 中删除图表元素。除此之外,我还使用
componentWillUnmount
来清理打开后的引导模式。我确信还有很多其他用例,但这些是我使用过的案例
componentWillUnMount
。我希望它能帮助你。