• react——获取数据ajax()、$.ajax()、fetch()、axios


    ajax()

    import React from 'react';
    import ReactDom from 'react-dom';
    import ajax from './tool.js';
    
    class Nav extends React.Component{
        constructor(){
            super();
            this.state = {
                arr: {}
            };
            this.get = this.get.bind(this);
        }
        get(){
            ajax('./data/data.json',function(res){
                // var json = JSON.parse(res);
                var json = (new Function('return' + res))();
                console.log(json);
            })
        }
        render(){
            return <div>
                <input type="button" value="按钮" onClick={this.get}/>
            </div>
        }
    }
    
    
    ReactDom.render(
        <Nav></Nav>,
        document.querySelector('#app')
    );

    $.ajax()

    import React from 'react';
    import ReactDom from 'react-dom';
    import $ from 'jquery';
    
    class Nav extends React.Component{
        constructor(){
            super();
            this.state = {
                arr: {}
            };
            this.get = this.get.bind(this);
        }
        get(){
            $.ajax({
                type:'get',
                url:'data/data.json',
                success:function(res){
                    console.log(res);
                }
            })
        }
        render(){
            return <div>
                <input type="button" value="按钮" onClick={this.get}/>
            </div>
        }
    }
    
    
    ReactDom.render(
        <Nav></Nav>,
        document.querySelector('#app')
    );

     fetch()------------------fetch在ios10.x.x可能会存在问题

    (大概是10.2.x??记不清了,衰~是在做微信公众号开发时候遇到的问题~不排除是x5内核所致啊,总之当初把fetch换成axios就好了)。

     

    import React from 'react';
    import ReactDom from 'react-dom';
    import $ from 'jquery';
    
    class Nav extends React.Component{
        constructor(){
            super();
            this.state = {
                arr: {}
            };
            this.get = this.get.bind(this);
        }
        get(){
            fetch('data/word.txt').then((res)=>{
                if(res.ok){
                    res.text().then((data)=>{
                        console.log(data);
                    })
                }
            }).catch((res)=>{
                console.log(res.status);
            });
        }
        render(){
            return <div>
                <input type="button" value="按钮" onClick={this.get}/>
            </div>
        }
    }
    
    
    ReactDom.render(
        <Nav></Nav>,
        document.querySelector('#app')
    );

    第四种:axios

    import React from 'react';
    import ReactDom from 'react-dom';
    import axios from 'axios';
    
    class Nav extends React.Component{
        constructor(){
            super();
            this.state = {
                arr: {}
            };
            this.get = this.get.bind(this);
        }
        get(){
            axios.get('./data/data.json').then((res)=>{
                console.log(res.data);
                console.log(res.data[3]);
            }).catch((err)=>{
                console.log(err.status);
            })
        }
        render(){
            return <div>
                <input type="button" value="按钮" onClick={this.get}/>
            </div>
        }
    }
    
    
    ReactDom.render(
        <Nav></Nav>,
        document.querySelector('#app')
    );
  • 相关阅读:
    java7底层源码
    google的collection
    2017年八大顶尖的技术趋势
    【译】STM32L4x6系列用户手册第四章
    FRDM-KL43开发板驱动段式液晶SLCD的实现方法
    如何根据丝印查找相关的产品型号
    Arduino Tian开发板:一个功能强大的天气预报中心
    在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵应用
    为LPC1549 LPCXpresso评估板开发基于mbed的项目
    使用LPCXpresso开发板调试外部的电路板
  • 原文地址:https://www.cnblogs.com/LLLLily/p/7492118.html
Copyright © 2020-2023  润新知