react+axios实现搜索github用户功能

news/2024/7/15 9:33:43 标签: github, react.js, node.js

在这里插入图片描述
加载
在这里插入图片描述
请求成功
在这里插入图片描述

请求失败
在这里插入图片描述

在文件路径点击cmd 回车
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
首先把服务器打开 npm start

在这里插入图片描述

app.js

import React, { Component } from 'react'
import "./App.css"
import Header from './conompents/Header'
import List from './conompents/List'
export default class App extends Component {
  // 初始化state
  state={
    users:[],
    isloading:false,
    isfirst:true,
    err:''

  }
  update=(updatemessage)=>{
     this.setState(
      updatemessage
     )
  }
  render() {
    return (
      <div className="container">
        <Header update={this.update} />
        <List  users={this.state}></List>
      </div>
    )
  }
}


Header.jsx

import React, { Component } from 'react'
import axios from"axios"

export default class Header extends Component {
  search=()=>{
     console.log(this.searchbtn.value);
     this.props.update({isfirst:false, isloading:true})
     axios.get(`http://localhost:3000/api1/search/users?q=${this.searchbtn.value}`).then(
      //  成功时回调
       response=>{
        
         console.log("发送请求成功",response.data.items);
         this.props.update({users: response.data.items,isloading:false})
       },
      // 失败时回调
      error=>{
        this.props.update({err:error.message,isloading:false})
          console.log("失败了",error.message);
      }
     )
  } 

    render() {
        return (
            <section className="jumbotron">
            <h3 className="jumbotron-heading">Search Github Users</h3>
            <div>
              <input type="text" placeholder="enter the name you search" 
               ref={c=>this.searchbtn=c}
              />
              &nbsp;
              <button onClick={this.search}>Search</button>
            </div>
          </section>
        )
    }
}

List.jsx

import React, { Component } from 'react'
import Listitem from './Listem'

export default class List extends Component {
  render() {
    return (
      <div className="row">
        {
          this.props.users.isfirst ? <h2 style={{margin:"50px"}}>Welcome to use, please enter the keyword</h2> :
          this.props.users.isloading ? <h2  style={{margin:"50px"}}>Loading......</h2> :
          this.props.users.err ? <h2  style={{margin:"50px"}}>{this.props.users.err}</h2> :
          this.props.users.users.map((a) => {
                  return (
                    <Listitem key={a.id} users={a} />
                  )
                })
        }
      </div>
    )
  }
}

Listitem

import React, { Component } from 'react'
import "./index.css"
export default class Listitem extends Component {
 
    render() {
        return (
            <div className="card"  >
            <a href={this.props.users.html_url} target="_blank" >
              <img src={this.props.users.avatar_url} style={{ width: '100px' }} />
            </a>
            <p className="card-text">{this.props.users.login}</p>
          </div>
        )
    }
}


http://www.niftyadmin.cn/n/1371795.html

相关文章

Web相关知识

常见状态码&#xff1a; 200 请求成功301 永久重定向&#xff0c;资源网页被永久转移到其他URL302 临时重定向 登录后页面的跳转&#xff0c;多用于页面改变状态后的跳转404 请求网页资源不存在500 内部服务器错误&#xff0c;代码错误 传统的MVC M 模型层&#xff0c;主要用于…

pubsub-js的使用

下载 npm add pubsub-js 导入 接收成功

DRF 使用生coreapi成接口文档遇到的问题‘CSRFCheck‘、‘AutoSchema‘

项目依赖版本&#xff1a; Django 1.11.1Django REST framework 3.10.1python 3.8coreapi 2.3.3 安装依赖 pip install coreapi使用&#xff1a; 项目中的 urls.py # 导入 from rest_framework.documentation import include_docs_urls # 添加路由 urlpatterns [url(rdocs…

爬楼梯 -- 斐波那契数列,尾递归

使用尾递归解决问题 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 1阶台阶 1种方法 2阶台阶 2种方法 3阶台阶 3种 4阶台阶 5种 5阶台阶 8种 。。。所以可以转换成斐波那契数列进行求解def…

力扣 整数反转

给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 def reverse(self, x: int) -…

Java递归,尾递归

递归 1.递归方法&#xff0c;一个方法体内调用它自身2.方法递归包含了一种隐式的循环&#xff0c;他会重复执行某行代码&#xff0c;但这种重复无序循环控制递归一定要向已知方向递归&#xff0c;否则这种递归就变成了无穷递归&#xff0c;类似与死循环 题目 已知有一个数列&a…

数据分析--数据分析是什么?

数据分析是什么&#xff1f;数据分析与数据挖掘之间的关系数据分析数据挖掘数据分析的基本步骤python和数据分析数据分析就是通过得到的数据&#xff0c;来发现各种规律之间的关系数据分析与数据挖掘之间的关系 数据分析 定义&#xff1a;简单来说&#xff0c;数据分析就是对…

数据分析--数据分析相关库

-数据分析相关库NumPypandasMatplotlibscikit-learnScrapySciPyNLTKstatsmodelsJupyterNumPy 是一个基础的科学计算库&#xff0c;是众多数据库的基础 提供了多维数组对象的数据结构&#xff0c;可以用于数据量较大情况下的数组与矩阵的储存和 计算&#xff0c;除此之外还提供…