在react docs中,建议使用以下componentDidMount方法发出初始网络请求:
componentDidMount
componentDidMount()挂载组件后立即调用。需要DOM节点的初始化应该在这里进行。如果需要从远程端点加载数据, 这是实例化网络请求的好地方。 在此方法中设置状态将触发重新渲染。
componentDidMount()
如果componentWillMount在呈现组件之前调用,那么在这里发出请求并设置状态不是更好吗?如果在这样做componentDidMount,则呈现组件,发出请求,更改状态,然后重新呈现组件。为什么在呈现任何内容之前发出请求更好呢?
componentWillMount
您应该在中提出要求componentDidMount。
如果在呈现组件之前调用componentWillMount,那么发出请求并在此处设置状态是否更好?
否,因为在呈现组件时请求不会完成。
如果我在componentDidMount中这样做,则呈现该组件,发出请求,更改状态,然后重新呈现该组件。为什么在呈现任何内容之前发出请求更好呢?
因为任何网络请求都是 异步的 。无论如何,除非您缓存了数据,否则就无法避免第二次渲染(在这种情况下,您根本不需要触发请求)。 您无法避免通过提前触发第二次渲染。 这不会有帮助。
在将来的React版本中,我们希望componentWillMount在某些情况下会触发不止一次,因此 您应该componentDidMount用于网络请求。