iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >React如何使用axios请求数据并把数据渲染到组件
  • 887
分享到

React如何使用axios请求数据并把数据渲染到组件

摘要

目录一、安装boostrap、axiOS二、在src目录下新建一个List.js,在List.js中三、在app.js中引入List.js并渲染四、在create-React-app

开始这个实例之前需要对es6、react、axios有一定的了解

安装一个react项目的脚手架 create react-app

在开始之前,你可能需要安装 yarn。

$ yarn create react-app antd-demo

工具会自动初始化一个脚手架并安装 React 项目的各种必要依赖,如果在过程中出现网络问题,请尝试配置代理或使用其他 npm reGIStry。

然后我们进入项目并启动。

$ cd antd-demo
$ yarn start

此时浏览器会访问 Http://localhost:3000/ ,看到 Welcome to React 的界面就算成功了。

想了解create react-app脚手架结合antd使用的可以访问这个地址:

https://ant.design/docs/react/use-with-create-react-app-cn

前端开发的时候,需要获取后台的数据,并把数据渲染到组件展示给用户看,那么这个过程如何实现呢

一般的思路是请求后端提供的接口数据,再把数据渲染出来。

下面一个实例展示:

我打算分为两个部分来写,第一个部分就是红色的表格头,固定的内容,一个是绿色的数据表格行,把他抽成一个组件的形式来渲染数据,而这些数据呢,我打算用https://www.mockapi.io来模拟真实数据了,也就是说模拟后端提供的接口数据,如果没用过mockapi的话也可以上网查一下。

大家也可以用这个数据接口:https://5b5e71c98e9f160014b88cc9.mockapi.io/api/v1/lists

接口的数据大概这样子,JSON的数据格式

[
  {
    "id": "1",
    "name": "小红",
    "age": 20,
    "sex": "女"
  },
  {
    "id": "2",
    "name": "小明",
    "age": 21,
    "sex": "男"
  },
  {
    "id": "3",
    "name": "翠花",
    "age": 24,
    "sex": "女"
  },
  {
    "id": "4",
    "name": "秋香",
    "age": 25,
    "sex": "女"
  },
  {
    "id": "5",
    "name": "张三",
    "age": 30,
    "sex": "男"
  }
]

开始写代码:

为了方便不用写CSS,直接安装个boostrap,然后引入boostrap的样式好了

一、安装boostrap、axios

npm install bootstrap@3.3.7 --save

请求数据就用axios吧,也可以用Jqueryajax(),我这里用axios

npm isntall axios --save

如果安装完成,可以看到

二、在src目录下新建一个List.js,在List.js中

在create-react-app可以尽情使用es6、es7的语法了,我们会对项目打包。

import React from 'react';
import 'bootstrap/dist/css/bootstrap.css';
import axios from 'axios';

首先先把组件写好,在List.js中,我先第一个表格数据的组件TrData

//List.js
class TrData extends React.Component{
  constructor(props){
    super(props);
  }
  render(){
    return (
      this.props.users.map((user,i)=>{
          return (
              <tr key={user.id} className="text-center">
                <td>{user.id}</td>
                <td>{user.title}</td>
                <td>{user.name}</td>
                <td>{user.sex}</td>
              </tr>
          )       
      })
    )
  }
}

首先用React.Component创建一个TrData组件,然后渲染传进来的数据users,循环遍历出来.遍历users的方法是es6的map()方法,大家也可用其他方法遍历了,只要数据能出来。

通过props给这个组件导入数据。接下来,我再创建一个List的组件,来显示UI视图

//List.js
class List extends React.Component {
    constructor(props){
        super(props);
  }
  render() {
      return (
        <table className="table table-bordered">
          <thead>
            <tr>
              <th className="text-center">ID</th>
              <th className="text-center">姓名</th>
              <th className="text-center">年龄</th>
              <th className="text-center">性别</th>
            </tr>
          </thead>
        <tbody>
           <TrData users={this.state.users}/>
        </tbody>
        </table>
      )  
  }
}

并且导出这个组件

//List.js
export default List;

接下来,我们来请求数据,我们知道在Vue中有生命周期,可以选择在特定的生命周期上进行数据挂载。同样React也有生命周期。

当组件输出到 DOM 后会执行 componentDidMount()钩子,也就是说我们可以在componentDidMount()内请求数据,并更新数据。

还有一点就是我们请求的数据要放在那儿,没错,这就是state。可能有些读者不懂这个state,这里简单讲一下,state就是可以存储组件的一系列状态。只能定义在组件内部。接下来,我两个state的两个状态,一个是users,一个是是否已经加载数据完成的isLoaded。

在组件List内部加入

constructor(props){
    super(props);
    this.state={
      users:[],
      isLoaded:false
    }
  }

state需要在constructor上定义。这涉及ES6的语法特性,这里就不过多讲其他的了。

我们再在List内部添加

//当组件输出到 DOM 后会执行 componentDidMount()
componentDidMount(){
    const _this=this;    //先存一下this,以防使用箭头函数this会指向我们不希望它所指向的对象。
    axios.get('https://5b5e71c98e9f160014b88cc9.mockapi.io/api/v1/lists')
    .then(function (response) {
      _this.setState({
        users:response.data,
        isLoaded:true
      });
    })
    .catch(function (error) {
      console.log(error);
      _this.setState({
        isLoaded:false,
        error:error
      })
    })
  }

通过axios请求数据,(在我之前的文章有)当请求成功后就更新state的users和isLoaded状态。更新state需要用this.setState()来更新状态,这个很类似微信小程序的setData(),state一发生改变,绑定那些状态的试图也会相应刷新改变。

我再写得合理一些,修改一下List 得render()

//List.js
render() {
      if(!this.state.isLoaded){
        return <div>Loading</div>
      }else{
      return (
        <table className="table table-bordered">
          <thead>
            <tr>
              <th className="text-center">ID</th>
              <th className="text-center">姓名</th>
              <th className="text-center">年龄</th>
              <th className="text-center">性别</th>
            </tr>
          </thead>
        <tbody>
           <TrData users={this.state.users}/>
        </tbody>
        </table>
      )  
    }
  }

当再请求数据得时候显示Loading,请求完成直接显示数据。

三、在app.js中引入List.js并渲染

//app.js
import React, { Component } from 'react';
import './App.css';
import List from './List';
 
class App extends Component {
  constructor(props){
    super(props);
  }
  render() {
    return (
      <div className="container">
        <List />
      </div>
    );
  }
}
 
export default App;
 

四、在create-react-app脚手架跑起来项目

npm start

访问http://localhost:3000/即可看到如下界面:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: React如何使用axios请求数据并把数据渲染到组件

本文链接: https://www.lsjlt.com/news/171827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • React如何使用axios请求数据并把数据渲染到组件
    目录一、安装boostrap、axios二、在src目录下新建一个List.js,在List.js中三、在app.js中引入List.js并渲染四、在create-react-app...
    99+
    2022-11-13
    React使用axios React axios请求数据 React 请求数据并渲染
  • react请求数据并渲染的方法是什么
    在React中,可以使用fetch或axios等库来发送请求并获取数据。一般情况下,在组件的生命周期方法中发送请求并在获取到数据后进...
    99+
    2023-10-07
    react
  • 小程序请求数据后如何渲染页面
    在小程序使用onLoad事件请求数据后实现页面渲染,实现代码如下:onLoad:function(){var that = thiswx.request({url:url, //url请求数据的地址method:"POST",data:{....
    99+
    2024-04-02
  • 微信小程序怎么使用wx.request请求服务器json数据并渲染到页面
    这篇文章将为大家详细讲解有关微信小程序怎么使用wx.request请求服务器json数据并渲染到页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:微信小程序的数...
    99+
    2024-04-02
  • jQuery中如何实现ajax请求后台返回json数据并渲染HTML
    小编给大家分享一下jQuery中如何实现ajax请求后台返回json数据并渲染HTML,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下...
    99+
    2024-04-02
  • react fetch如何请求数据
    这篇文章主要介绍“react fetch如何请求数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react fetch如何请求数据”文章能帮助大家解决问题。react fetch请求数据的方法:1...
    99+
    2023-07-04
  • Vuejs如何通过Axios请求数据
    目录通过Axios请求数据安装Axios工具封装Axios工具配置Axios工具使用Axios工具Vue请求数据(Axios)什么是Axios引入使用方法通过Axios请求数据 我们...
    99+
    2024-04-02
  • react如何请求数据异步
    这篇文章主要讲解了“react如何请求数据异步”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何请求数据异步”吧!react请求数据异步的方法:1、通过“npm i redux-t...
    99+
    2023-07-04
  • react有数据但渲染不上如何解决
    本篇内容主要讲解“react有数据但渲染不上如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react有数据但渲染不上如何解决”吧!react有数据但渲染不上的解决办法:1、在构造方法里,...
    99+
    2023-07-04
  • vue中如何使用axios数据请求get、post方法
    小编给大家分享一下vue中如何使用axios数据请求get、post方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue中使用axios方法我们先安装axios这个方法npm inst...
    99+
    2024-04-02
  • react中如何请求远程数据
    这篇文章给大家分享的是有关react中如何请求远程数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 请求远程数据的四种方法:1、直接在React组件...
    99+
    2024-04-02
  • reactredux中如何获取store数据并将数据渲染出来
    目录前景提要1.创建仓库骨架并书写初始代码2.正式开始3.store 数据获取方法(可略过)4.数据的获取与展示前景提要 如果不了解基础的话 ----- 点击此处 本文着重实现效果,...
    99+
    2022-11-13
    react redux redux获取store数据 react redux渲染
  • vue中数据请求axios的封装和使用
    目录一、什么是axios二、下载方式三、拦截器四、请求的封装五、使用一、什么是axios      简单的来说,​Axios 是一个基于 promise...
    99+
    2024-04-02
  • react后端请求数据如何实现
    本篇内容主要讲解“react后端请求数据如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react后端请求数据如何实现”吧!react后端请求数据的实现方法:1、在package.json...
    99+
    2023-07-04
  • vue axios数据请求及vue中使用axios的示例分析
    这篇文章将为大家详细讲解有关vue axios数据请求及vue中使用axios的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。axios 简介axios 是一个基...
    99+
    2024-04-02
  • vue中数据请求axios怎么封装和使用
    这篇文章主要介绍了vue中数据请求axios怎么封装和使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中数据请求axios怎么封装和使用文章都会有所收获,下面我们一起来看看吧。一、什么是axios&nb...
    99+
    2023-06-30
  • JAVA中如何使用多线程并行请求数据
    在Java中使用多线程并行请求数据可以使用Thread类或者Executor框架来实现。使用Thread类可以手动创建和管理线程,每...
    99+
    2023-09-21
    JAVA
  • vue使用echarts时created里拿到的数据无法渲染如何解决
    这篇文章主要介绍了vue使用echarts时created里拿到的数据无法渲染如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue使用echarts时created里拿到的数据无法渲染如何解决文章都会有...
    99+
    2023-07-05
  • 如何解决uniapp拿到数据不渲染页面问题
    在移动端应用开发中,uniapp以其跨平台特性和高效开发方式,越来越受到广大开发者的关注和青睐。但是,在使用uniapp开发应用时,有时候我们会遇到拿到数据但是无法渲染页面的情况。下面就让我们一起来看看这种情况的解决方法。一、检查数据格式u...
    99+
    2023-05-14
  • Angular如何将填入表单的数据渲染到表格
    这篇文章将为大家详细讲解有关Angular如何将填入表单的数据渲染到表格,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、项目简介我们将采用Angular框架来做一个de...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作