安装组件后,我需要从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/

10-12 02:01