react+axios實(shí)現(xiàn)github搜索用戶功能(示例代碼)
加載
請(qǐng)求成功
請(qǐng)求失敗
在文件路徑點(diǎn)擊cmd 回車(chē)
首先把服務(wù)器打開(kāi) 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( // 成功時(shí)回調(diào) response=>{ console.log("發(fā)送請(qǐng)求成功",response.data.items); this.props.update({users: response.data.items,isloading:false}) }, // 失敗時(shí)回調(diào) 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} /> <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> ) } }
到此這篇關(guān)于react+axios實(shí)現(xiàn)搜索github用戶功能的文章就介紹到這了,更多相關(guān)react axios github搜索內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
TypeScript在React項(xiàng)目中的使用實(shí)踐總結(jié)
這篇文章主要介紹了TypeScript在React項(xiàng)目中的使用總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04React Hooks 實(shí)現(xiàn)和由來(lái)以及解決的問(wèn)題詳解
這篇文章主要介紹了React Hooks 實(shí)現(xiàn)和由來(lái)以及解決的問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01react實(shí)現(xiàn)組件狀態(tài)緩存的示例代碼
本文主要介紹了react實(shí)現(xiàn)組件狀態(tài)緩存的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02詳解一個(gè)基于react+webpack的多頁(yè)面應(yīng)用配置
這篇文章主要介紹了詳解一個(gè)基于react+webpack的多頁(yè)面應(yīng)用配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)的方法
這篇文章主要為大家詳細(xì)介紹了React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09