我们如何、何时以及为什么在 React JavaScript 中清理我们的组件?

Abd*_*ani 1 javascript reactjs react-hooks

我知道我们需要清理 React 中的组件以防止内存泄漏(也许还有其他原因)。我也明白如何使用comonentWillUnmount(不再使用)和useEffect钩子。然而,我的问题是我们清理我们的组件是什么,为什么(真的为什么)。我想要一个详细的答案,因为我在理解这个概念时遇到了问题。

Ale*_*yne 5

你通常根本不需要。

对于大多数组件,只需更改状态然后不渲染它们就可以毫不费力地卸载它们。

然而,如果你做了任何不会被清理的事情,你必须自己清理它。这意味着标准 React 生命周期之外的事情:

  • 事件侦听器需要未绑定(即在滚动页面时侦听onScrollofwindow做一些有趣的事情)
  • 取消订阅在实例化该组件时打开的数据订阅。(即在打开的网络套接字上收听新的聊天室消息)
  • 取消不再需要的超时或间隔。(即每秒更新一次时钟)

这不是一个详尽的列表,但我们的想法是,如果您在组件的生命周期中执行任何使用某些 props 渲染组件的操作,您可能应该在卸载组件时撤消该操作。