react http请求放在哪

react http请求应该放在componentDidMount中去操作,这是对于异步请求来说的;而对于同步的状态改变,react网络请求可以放在componentWillMount中,一般用的比较少。

react http请求放在哪

本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。

react http请求放在哪?React网络请求到底该放在哪个生命周期中?

总的来说,对于异步请求,最好放在componentDidMount中去操作,对于同步的状态改变,可以放在componentWillMount中,一般用的比较少。

如果认为在componentWillMount里发起请求能提早获得结果,这种想法其实是错误的,通常componentWillMount比componentDidMount早不了多少微秒,网络上任何一点延迟,这一点差异都可忽略不计。

看看react的生命周期:

constructor() ----> componentWillMount() ----> render() ----> componentDidMount()

登录后复制

上面这些方法的调用是有次序的,由上而下依次调用。

constructor被调用是在组件准备要挂载的最开始,此时组件尚未挂载到网页上。

componentWillMount方法的调用在constructor之后,在render之前,在这方法里的代码调用setState方法不会触发重新render,所以它一般不会用来作加载数据之用。

componentDidMount方法中的代码,是在组件已经完全挂载到网页上才会调用被执行,所以可以保证数据的加载。此外,在这方法中调用setState方法,会触发重新渲染。所以,官方设计这个方法就是用来加载外部数据用的,或处理其他的副作用代码。与组件上的数据无关的加载,也可以在constructor里做,但constructor是做组件state初绐化工作,并不是做加载数据这工作的,constructor里也不能setState,还有加载的时间太长或者出错,页面就无法加载出来。所以有副作用的代码都会集中在componentDidMount方法里。

总结:

1.跟服务器端渲染(同构)有关系,如果在componentWillMount里面获取数据,fetch data会执行两次,一次在服务器端一次在客户端。在componentDidMount中可以解决这个问题,componentWillMount同样也会render两次。

2.在componentWillMount中fetch data,数据一定在render后才能到达,如果你忘记了设置初始状态,用户体验不好。

3.react16.0以后,componentWillMount可能会被执行多次。

推荐学习:《react视频教程》

以上就是react http请求放在哪的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2922361.html

(0)
上一篇 2025年3月11日 18:38:00
下一篇 2025年2月21日 13:25:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react 多个页面之间跳转怎么实现

    react多个页面之间跳转的实现方法:1、引入“React-Router”;2、在Home页面用Link加上跳转到其他页面的链接;3、将多个路由放在一个文件并导出多个数组即可。 本教程操作环境:Windows10系统、react18.0.0…

    2025年3月11日 编程技术
    200
  • react fetch怎么请求数据

    react fetch请求数据的方法:1、将请求的方法放在生命周期的“componentDidMount”里;2、封装fetch请求;3、通过“function checkStatus(response){…}”方法检查请求状态…

    2025年3月11日 编程技术
    200
  • react白屏原因是什么

    react白屏的原因是HtmlWebpackPlugin插件在引入bundle.js时,引入的是相对路径,其解决办法:1、在output配置中加入publicPath;2、在history模式下,将historyApiFallback设置为…

    2025年3月11日
    200
  • react 表格怎么增加

    react表格增加的实现方法:1、在一个Table.jsx文件中创建两个class组件;2、在两个组件外面定义变量;3、创建点击新增的事件方法代码为“handleAdd = () => { const { data, editingK…

    2025年3月11日 编程技术
    200
  • react不能解析css怎么办

    react不能解析css是因为webpack配置“css/less”文件的loader时,默认不开启模块化或者是由于引入方法不对导致的,其解决办法:1、更改下webpack的loader配置;2、在“index.css”文件中通过“@imp…

    2025年3月11日 编程技术
    200
  • react创建元素的方法是什么

    react创建元素的方法:1、使用JSX语法创建React元素,其语法如“const element = Hello, world;”;2、通过“React.createElement(type,props,children)”语法创建Re…

    2025年3月11日
    200
  • react有哪些方法改变state

    react改变state的方法有:1、通过“this.setState({title:’React’});”方法修改state;2、通过“this.setState((preState, props)=>cou…

    2025年3月11日
    200
  • react怎么实现点击隐藏显示

    react实现点击隐藏显示的方法:1、使用style来显示隐藏,代码如“{{display:this.state.isShow?’block’:’none’}}”;2、使用三元运算符实现隐藏显…

    2025年3月11日
    200
  • react 属于什么框架

    react属于一种web前端开发框架;react是用于构建用户界面的JavaScript库,其特点有:1、简单,简单的表述任意时间点你的应用应该是什么样子;2、声明式,React是关于构造可重用组件的,实际上,使用React你做的仅仅是构建…

    2025年3月11日
    200
  • react中怎么用link跳转

    react中用link跳转的方式:1、通过Link跳转携带隐形参数,然后使用“this.props.location.query”拿到所传参数对象;2、通过Link跳转携带显性参数,然后使用“this.props.match.params.…

    2025年3月11日
    200

发表回复

登录后才能评论