首页 > 解决方案 > 在 React 16 中贬低生命周期挂钩的主要原因

问题描述

我试图了解在版本 16中贬值componentWillMount/ componentWillUpdate/的主要原因。componentWillReceivePropsreact

在高层次上,它们似乎被贬低了,因为它们的命名鼓励开发人员进行 API 调用,这些调用在下一个生命周期事件(例如render)已经发生后返回,因此开发人员应该使用componentDidX对应的。

因此,本质上,正因为如此,这些生命周期事件正在被贬值,并且componentWillRecieveProps正在被放入更恰当的名称getDerivedStateFromProps中,而其他componentDidX方法正在被推送。

这是一般正确的高级推理吗?

标签: javascriptreactjsfrontendweb-frontend

解决方案


因为 React 正在实现异步渲染,这将导致在某些情况下多次调用像 componentWillMount 这样的生命周期事件,这就是 React 团队弃用这些方法并将它们标记为 UNSAFE 的原因。

您可以在此链接中获得更多详细信息。

更新:以下帖子很好地解释了 componentWillMount 如何被误用,因此 React 核心团队将它们标记为不安全:Revisiting use of React's Component Life Cycle Hooks in Anticipation of Async Rendering


推荐阅读