安装组件后,我需要从API请求它的内容。在docs中:
componentDidMount()在组件被调用后立即被调用
已安装。需要DOM节点的初始化应在此处进行。如果你
需要从远程端点加载数据,这是一个好地方
实例化网络请求。
它如下:
在此方法中调用setState()将触发额外的呈现(...)
谨慎使用此模式
因为它经常会导致性能问题。
向API发出请求并立即将setState与响应一起发出请求的最佳实践是什么?
最佳答案
收到响应后,调用API并更新状态的最佳方法是在componentDidMount()
或componentWillMount()
中。
哪一个取决于您要如何处理API调用中的数据。如果您需要访问组件DOM,则必须使用componentDidMount()
。就是说,除非您不需要将数据设置为state
,否则这两种方法都不会使您免于重新渲染,在这种情况下,您只需将其保存到this
即可。
official documentation甚至在this section中声明:
装入组件后立即调用componentDidMount()
。需要DOM节点的初始化应在此处进行。如果需要从远程端点加载数据,这是实例化网络请求的好地方。
关于performance - 我应该发出哪个生命周期 Hook 并立即设置状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48170717/