react 发送ajax请求

ajax请求

  • 发送ajax请求的几种方式
    • JQuery:一般不用,太重,不是专事专做
    • axios: axios.get(url)
    • fetch: fetch(url)
  • axios fetch 用法
    class App extends React.Component{
        constructor(props){
            super(props);
            // 定义数据的初始状态
            this.state = {
                attr:{
                    cn_name:null,
                    en_name:null,
                }
            }
        }
        // 发送ajax请求
        componentDidMount(){
            let url = "http://shuyantech.com/api/cndbpedia/avpair?q=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6";
            // axios方式
            axios.get(url)
                .then(
                    (response)=>{
                        let data = response.data.ret;
                        // 更新数据状态
                        this.setState({
                            attr:{
                                cn_name:data[0][1],
                                en_name: data[1][1]
                            }
                        })
                    }
                )
                .catch(
                    (error)=>{
                        console.log(error)
                    }
                )
            // fetch方式
            fetch(url)
                // 返回response
                .then((response)=> {return response.json()})
                // 获取数据
                .then((data)=> {
                    data = data.ret;
                    // 更新数据状态
                    this.setState({
                        attr:{
                            cn_name:data[0][1],
                            en_name: data[1][1]
                        }
                    })
                })
                // 捕获异常
                .catch((e)=> {console.log(e)})
        }
        render(){
            let {attr} = this.state;
            // 根据数据状态显示不同结果
            if(!attr){
                return <h2>正在请求CNdbpedia数据,请稍后...</h2>
            }else{
                return(
                    <div>
                        <p>中文名:{attr.cn_name}</p>
                        <p>英文名:{attr.en_name}</p>
                    </div>
                )
            }
        }
    }
    
    ReactDOM.render(
        <App />,
        document.getElementById("root")
    )
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,023评论 1 45
  • PS:转载请注明出处作者: TigerChain地址: https://www.jianshu.com/p/218...
    TigerChain阅读 26,417评论 5 70
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 8,125评论 1 4
  • 关于axios是一个ajax的库 以前用ajax是这么用的 可以用axios.ajax()也可以用axios.po...
    tsl1127阅读 1,586评论 0 1
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵胜奥阅读 10,339评论 0 1