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

在React.js中,我应该在componentWillMount或componentDidMount中发出初始网络请求吗?

弓方伟
2023-03-14
问题内容

在react docs中,建议使用以下componentDidMount方法发出初始网络请求:

componentDidMount()挂载组件后立即调用。需要DOM节点的初始化应该在这里进行。如果需要从远程端点加载数据,
这是实例化网络请求的好地方。 在此方法中设置状态将触发重新渲染。

如果componentWillMount在呈现组件之前调用,那么在这里发出请求并设置状态不是更好吗?如果在这样做componentDidMount,则呈现组件,发出请求,更改状态,然后重新呈现组件。为什么在呈现任何内容之前发出请求更好呢?


问题答案:

您应该在中提出要求componentDidMount

如果在呈现组件之前调用componentWillMount,那么发出请求并在此处设置状态是否更好?

否,因为在呈现组件时请求不会完成。

如果我在componentDidMount中这样做,则呈现该组件,发出请求,更改状态,然后重新呈现该组件。为什么在呈现任何内容之前发出请求更好呢?

因为任何网络请求都是 异步的 。无论如何,除非您缓存了数据,否则就无法避免第二次渲染(在这种情况下,您根本不需要触发请求)。
您无法避免通过提前触发第二次渲染。 这不会有帮助。

在将来的React版本中,我们希望componentWillMount在某些情况下会触发不止一次,因此
您应该componentDidMount用于网络请求



 类似资料:
  • 本文向大家介绍在React.js中发出HTTP请求,包括了在React.js中发出HTTP请求的使用技巧和注意事项,需要的朋友参考一下 在典型的Web应用程序中,客户端通过浏览器发出http请求,而服务器在响应中发送带有数据的html页面。 但是在单页应用程序(SPA)中,我们只有一页,每当客户端向服务器发出http请求时,它通常都会以json / xml格式的数据进行响应。 为了发出http请求

  • 我正在阅读react lifecycle,有点困惑。有些人建议使用componentWillMount进行ajax调用: https://hashnode.com/post/why-is-it-a-bad-idea-to-call-setstate-immediately-after-componentdidmount-in-react-cim5vz8kn01flek53aqa22mby 在com

  • 问题内容: 我正在阅读反应生命周期,并感到有些困惑。一些建议使用componentWillMount进行ajax调用: https://hashnode.com/post/why-is-it-a-bad-idea-to-call-setstate-immediately- after-componentdidmount-in-react- cim5vz8kn01flek53aqa22mby 在co

  • 问题内容: 我正在尝试做的事情 :: 我正在尝试学习 Okhttp 在android中进行网络通话的用法 我做了什么 :: 我 在这里 阅读了他们的文档 __ 我已经在项目中下载并添加了JAR 我从 这里 使用他们的示例代码 __ MyCode :: MainActivity.java 我面临的错误 :: 在这一行中, 我收到以下错误消息: 客户无法解析为变量 如何解决这个问题! {更新} 现在我

  • 问题内容: 我有一种情况,我可以将JPA实体作为休息请求发送和/或获取JPA实体作为休息响应 是一个实体 我应该使用它,还是从实体到另一种对象进行某种转换 问题答案: 没有硬性规定可以将JPA实体用作DTO(数据传输对象),但这不是一个好习惯(出于很好的理由和观点)。 除了DTO在规模上是实体的轻量级版本之外,还有其他优点。 我意识到的这样的优势之一就是关系的版本更浅,例如对于一对多单向关系,您的

  • 本文向大家介绍react中发起网络请求应该在哪个生命周期中进行?为什么?相关面试题,主要包含被问及react中发起网络请求应该在哪个生命周期中进行?为什么?时的应答技巧和注意事项,需要的朋友参考一下 异步情况可以在componentDidMount()函数中进行。 同步的情况可以在componentWillMount()中进行。