美文网首页
react 的请求应该放在哪个生命周期为什么?

react 的请求应该放在哪个生命周期为什么?

作者: lessonSam | 来源:发表于2020-03-26 23:03 被阅读0次

    React的请求应该放在哪个生命周期中?

    React的异步请求到底应该放在哪个生命周期里,有人认为在componentWillMount中可以提前进行异步请求,避免白屏,其实这个观点是有问题的.

    由于JavaScript中异步事件的性质,当您启动API调用时,浏览器会在此期间返回执行其他工作。当React渲染一个组件时,它不会等待componentWillMount它完成任何事情 - React继续前进并继续render,没有办法“暂停”渲染以等待数据到达。

    而且在componentWillMount请求会有一系列潜在的问题,首先,在服务器渲染时,如果在 componentWillMount 里获取数据,fetch data会执行两次,一次在服务端一次在客户端,这造成了多余的请求,其次,在React 16进行React Fiber重写后,componentWillMount可能在一次渲染中多次调用.

    目前官方推荐的异步请求是在componentDidmount中进行.

    如果有特殊需求需要提前请求,也可以在特殊情况下在constructor中请求:

    react 17之后componentWillMount会被废弃,仅仅保留UNSAFE_componentWillMount

    相关文章

      网友评论

          本文标题:react 的请求应该放在哪个生命周期为什么?

          本文链接:https://www.haomeiwen.com/subject/adtkuhtx.html