当前位置: 首页 > 面试题库 >

调用setState()函数会发生什么?

和嘉澍
2023-03-14
问题内容

setState()功能运行什么?它只会运行render()吗?


问题答案:

setState()将按以下顺序运行函数:

shouldComponentUpdate()

componentWillUpdate()

render()

componentDidUpdate()

如果您的组件正在接收道具,它将componentWillRecieveProps()使用上述功能运行该功能。



 类似资料:
  • 问题内容: 出于好奇,我只想知道如果我在React Native或ReactJS的Class的构造函数中使用函数会发生什么?如: React将会发生什么生命周期? 我还没有阅读React中的代码。那样写恐怕会造成一些损害。 问题答案: 什么本质上确实是运行了一堆你可能不会在构造函数需要逻辑的。 进行操作时,您只需为javascript对象分配一些内容,就如同分配其他任何对象一样。(仅此而已,只是每

  • 出于好奇,我只想知道如果我在 React Native 或 ReactJS 中的类的构造函数中使用 函数会发生什么?如: React的生命周期是怎样的? 我没看过React里面的代码。我担心我那样写的话会有什么损害。

  • 这个问题在这里总结得很好;基本上,如果您在useEffect中有一个异步函数(这是您期望的函数),您将导致每个更新状态的组件的重新呈现。我通常不想像作者的解决方案/变通方法那样把事情堆在一起,对我来说,这种行为没有意义(您希望所有的状态更新都一起发生)。

  • 我试着读过类似的问题,但没有成功。

  • 在async-nature-of-setState中我们已经提到过, setState其实是异步的. 因为出于性能优化考虑, React会将多次setState做一次批处理. 于是setState并不会在被调用之后立即改变我们的state. 这就意味着你并不能依赖于在调用setState方法之后state, 因为此时你并不能确认该state更新与否. 当然针对这个问题我们也有解决办法—用前一个st

  • 考虑以下代码: 旁白:请不要评论“这段代码很糟糕”,“你不能在全局对象中使用析构函数”(你可能不应该这样做),也不要在评论中探究XY问题。这是一个好奇的学生提出的学术问题,他知道如何更好地解决原来的问题,但却在探索C++的广阔天地时偶然发现了这个怪癖。