首页 > componentWillMount 中,如果设置了ajax,会阻塞渲染吗?

componentWillMount 中,如果设置了ajax,会阻塞渲染吗?

想实现一个功能:
去服务器取数据,如果服务器有数据就渲染,如果没有就用默认的getInitialState中的数据。
我的做法是:在componentWillMount 中发起一次ajax请求。
但是问题来了:因为ajax是异步的,如果服务器响应时间过长,会不会导致先渲染getInitialState中的数据。而且因为ajax响应太慢,导致前端渲染阻塞。


你应该写到触发这个组件mount的action的handler里去。渲染是pure的,不该触发i/o逻辑。


不会阻塞的,但是组件只会mount一次,第一次render的时候用的state里的初始数据然后mount(这时候你就能在页面看到东西了),这时候你的ajax发起请求,等一段时间数据回来后,如果你在success回调里重新给state赋值的话,react会因为state的改变重新render一次页面.


应该是不会的。等到数据返回之后会重现渲染(如果需要重新渲染的话)。你可以用setTimeout模拟一下,

【热门文章】
【热门文章】