ReactJS_11 React AJAX

React 组件的数据可以通过 componentDidMount 方法中的 Ajax 来获取,当从服务端获取数据时可以将数据存储在 state 中,再用 this.setState 方法重新渲染 UI。

当使用异步加载数据时,在组件卸载前使用 componentWillUnmount 来取消未完成的请求。

以下实例演示了获取 Github 用户最新 gist 共享描述:

//要先引入jquery.js文件,否则会报错
class UserGist extends React.Component {
        constructor(props) {
            super(props);
            this.state = {username: '', lastGistUrl: ''};
        }


        componentDidMount() {
            this.serverRequest = $.get(this.props.source, function (result) { 
                console.log(result);   //打印接口数据
                var lastGist = result[0]; //获取第一条数据
                this.setState({
                    username: lastGist.owner.login,
                    lastGistUrl: lastGist.html_url
                });
            }.bind(this));
        }

        componentWillUnmount() {
            this.serverRequest.abort();
        }

        render() {
            return (
                <div>
                    {this.state.username} 用户最新的 Gist 共享地址:
                    <a href={this.state.lastGistUrl}>{this.state.lastGistUrl}</a>
                </div>
            );
        }
    }

    ReactDOM.render(
        <UserGist source="https://api.github.com/users/octocat/gists" />,
        document.getElementById('root')
    );

请求数据结果:


数据显示
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 使用 create-react-app 快速构建 React 开发环境 项目的目录结构如下: React JSX ...
    majun00阅读 560评论 0 0
  • 说在前面 关于 react 的总结过去半年就一直碎碎念着要搞起来,各(wo)种(tai)原(lan)因(le)。心...
    陈嘻嘻啊阅读 7,012评论 7 41
  • React.js 小书学习 之 【使用 JSX 描述 UI 信息】 从 JSX 到页面 过程图解:JSX 到页面过...
    zdlucky阅读 1,432评论 0 20
  • $ 前言   最近在考虑框架转型,鉴于作为一名JSer,要时时刻刻保持对新技术和流行技术的敏感性,而 React、...
    果汁凉茶丶阅读 22,160评论 5 32
  • 2017年8月 第一次看你的书 2017年9月 第一次自己一个人去见你 2017年10月 第一次荔枝连线成功 .....
    Angnes阅读 766评论 0 0

友情链接更多精彩内容