## 十一、Ajax 组件的数据来源,通常是通过 Ajax 请求从服务器获取,可以使用 componentDidMount 方法设置 Ajax 请求,等到请求成功,再用 this.setState 方法重新渲染 UI (查看 [demo11](https://github.com/ruanyf/react-demos/blob/master/demo11/index.html) )。 > ~~~ > var UserGist = React.createClass({ > getInitialState: function() { > return { > username: '', > lastGistUrl: '' > }; > }, > > componentDidMount: function() { > $.get(this.props.source, function(result) { > var lastGist = result[0]; > if (this.isMounted()) { > this.setState({ > username: lastGist.owner.login, > lastGistUrl: lastGist.html_url > }); > } > }.bind(this)); > }, > > render: function() { > return ( > <div> > {this.state.username}'s last gist is > <a href={this.state.lastGistUrl}>here</a>. > </div> > ); > } > }); > > React.render( > <UserGist source="https://api.github.com/users/octocat/gists" />, > document.body > ); > ~~~ 上面代码使用 jQuery 完成 Ajax 请求,这是为了便于说明。React 没有任何依赖,完全可以使用其他库。