gpt4 book ai didi

reactjs - 为什么 componentWillReceiveProps 被弃用?

转载 作者:行者123 更新时间:2023-12-03 13:03:21 24 4
gpt4 key购买 nike

我通读了https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data-when-props-change 。我仍然无法理解为什么他们必须弃用 componentWillReceiveProps。
在 componentWillReceiveProps 中进行 ajax 调用有什么危害?一旦 ajax 调用返回值,我就会更新状态,从而重新渲染组件。

最佳答案

componentWillReceiveProps 是一个同步钩子(Hook)。在该钩子(Hook)内调用异步函数(例如数据获取)需要在设置新 Prop 和数据完成加载之间进行渲染。

但是 getDerivedStateFromProps 是一个异步 Hook ,不需要任何额外的渲染。因此,componentWillReceiveProps 已被弃用,原因如下:

  1. 使用 getDerivedStateFromProps
  2. 或者,使用 componentDidUpdate

这不会给你带来不必要的渲染。请注意,getDerivedStateFromProps 仅在极少数情况下使用。因此,我建议您尽可能使用 componentDidUpdate hook。

<小时/>

比较 componentWillMount 和 componentDidMount 时会发生类似的情况。每当您需要执行异步操作时,请使用 componentDidMount 并在任何情况下忘记 componentWillMount 。关于 componentDidMount 的更多解释在我的另一个 post .

关于reactjs - 为什么 componentWillReceiveProps 被弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com