在ReactJS中从哪里发出初始AJAX请求

时间:2014-05-13 11:27:02

标签: javascript frontend reactjs

我有一个页面,我需要加载一些初始的Ajax数据。
我在Reactjs page上读到我应该在componentDidMount中进行调用。

componentDidMount而不是componentWillMount提出请求的优势是什么?

3 个答案:

答案 0 :(得分:7)

使用服务器呈现时,会调用componentWillMount,但不会调用componentDidMount。因此,我倾向于在componentDidMount中进行任何需要浏览器的初始化(包括Ajax和DOM操作)。

答案 1 :(得分:4)

由于反应意图用作视图,因此您的ajax请求应该放在您的模型中。

否则,如果出于某种原因需要在视图中进行设置,componentDidMountcomponentWillMount之间的区别在于第一个被调用一次元素重新呈现,您可以通过this.getDOMNode()访问它,第二个在render()开始之前调用一次

答案 2 :(得分:4)

componentDidMount()中,如果需要,您可以访问DOM;在componentWillMount()中您还没有访问权限(如果您只想调用setState,则可能不需要它。)

确保在render()方法中,您能够优雅地呈现“空”状态(即在Ajax结果返回之前)。 getInitialState()可以帮助您设置一些基本空状态。