react.js - componentWillMount 中,如果设置了ajax,会阻塞渲染吗?
本文介绍了react.js - componentWillMount 中,如果设置了ajax,会阻塞渲染吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
想实现一个功能:
去服务器取数据,如果服务器有数据就渲染,如果没有就用默认的getInitialState中的数据。
我的做法是:在componentWillMount 中发起一次ajax请求。
但是问题来了:因为ajax是异步的,如果服务器响应时间过长,会不会导致先渲染getInitialState中的数据。而且因为ajax响应太慢,导致前端渲染阻塞。
解决方案
不会阻塞的,但是组件只会mount一次,第一次render的时候用的state里的初始数据然后mount(这时候你就能在页面看到东西了),这时候你的ajax发起请求,等一段时间数据回来后,如果你在success回调里重新给state赋值的话,react会因为state的改变重新render一次页面.
这篇关于react.js - componentWillMount 中,如果设置了ajax,会阻塞渲染吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文