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。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值