通过axios实现的一个搜索查询展示案例

2023-11-13

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码如下:
App.js

import React, { Component } from 'react'
import {Search,List} from './components';
export default class App extends Component {
 //初始化状态 
 state={
    users:[],//users初始值为数组
    isFirst:true,//是否为第一次打开页面
    isLoading:false,//标识是否处于加载中
    err:'',//存储请求相关的错误信息
  }

  //更新app的state
  updateAppState = (stateObj)=>{
    this.setState(stateObj)
  }

  // saveUsers = (users)=>{
  //   this.setState({users})
  // }
  

  render() {
    return (
      <div className="container">
      <Search updateAppState={this.updateAppState}></Search>
       <List {...this.state}></List>
      </div>
    )
  }
}

Search.js

import React, { Component } from 'react'
import axios from 'axios'
export default class Search extends Component {

search=()=>{
    //获取当前用户输入
    // //常规的解构赋值
    // const {value} = this.inputt   也就的等于=== const {inputt:{value}} = this
    // console.log(value);
    //连续的解构赋值+重命名
    const {inputt:{value:valuelue}} = this
    console.log(valuelue);
    //发送请求之前通知app更新状态
    this.props.updateAppState({isFirst:false,isLoading:true}) 
    //发送网络请求
    axios.get(`http://localhost:3000/api2/search/users?q=${valuelue}`).then(
        response =>{
            console.log('请求成功了',response.data);
            //请求成功通知app更新状态
            this.props.updateAppState({isLoading:false,users:response.data.items})
        },
        error =>{console.log('请求失败了',error);
        //请求失败通知app更新状态
        this.props.updateAppState({isLoading:false,err:error.message})
    }
    )   
}
    render() {
        return (
            <section className="jumbotron">
            <h3 className="jumbotron-heading">Search Github Users</h3>
            <div>
              <input ref={c=>this.inputt=c} type="text" placeholder="enter the name you search"/>&nbsp;
              <button onClick={this.search}>搜索</button>
            </div>
          </section>
        )
    }
}

List.js

import React, { Component } from 'react'
import  './index.css'
export default class List extends Component {
  render() {
    const {users,isFirst,isLoading,err}=this.props
    return (
      <div className="row">
        {
          isFirst ? <h2>欢迎使用,请输入关键字,点击搜索即可查看搜索结果</h2> :
          isLoading ? <h2>加载中....</h2> :
          err ? <h2 style={{color:'red'}}>{err}</h2> :
          users.map((item)=>{
            console.log('aaa');
            return(
              <div className="card" key={item.id}>
              <a rel="noreferrer" href={item.html_url} target="_blank">
                <img alt="头像" src={item.avatar_url} style={{width: '100px'}}/>
              </a>
              <p className="card-text">{item.login}</p>
            </div>
            )
          })
        }
    </div>
    )
  }
}

setupProxy.js proxy解决跨域专用文件名 js能够识别

const proxy = require('http-proxy-middleware')

module.exports = function(app){
	app.use(
		proxy('/api1',{ //遇见/api1前缀的请求,就会触发该代理配置
			target:'http://www.kuwo.cn', //请求转发给谁
			changeOrigin:true,//控制服务器收到的请求头中Host的值
			pathRewrite:{'^/api1':''} //重写请求路径(必须)
		}),
		proxy('/api2',{
			target:'http://localhost:5000',
			changeOrigin:true,
			pathRewrite:{'^/api2':''}
		}),
	)
}


通过PubSub订阅发布 实现两个组件间传值 不使用App 而是将数据直接存在list中 在list中订阅,search中将数据发布给list

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过axios实现的一个搜索查询展示案例 的相关文章

  • websocket传输速率_STM32 websocket,TCP和UDP的传输速率

    网络上经常有人提到websocket TCP和UDP 的差别 说的大都是协议之间的差别 没有提及它们的传输能力 为了设计高吞吐量的物联网微服务器 最近对websocket TCP UDP的传输能力做了测试 使用STM32F746 处理器 操

随机推荐

  • unity打开除主菜单其他地方黑屏或白屏与unityHub安装unity简介

    unity打开除主菜单其他地方黑屏或白屏 新安装完成unity后 解决与原因 缘由 新安装完成unity后 打开unity进入项目后 只显示出主菜单栏 其他为白屏或黑屏 如下图 解决与原因 具体原因没仔细去查百度了一下 可以是时区的设置问题
  • MatLab中滤波器(filterDesigner)的设计和使用(附代码)

    本文章只作为本人学习笔记使用 matlab具有非常使用的滤波器设计工具 关于如何找到这个小工具有两种方法 1 我们可以在命令行输入filterDesigner 不同版本命令可能会有所不同 2 在APP页面中找到filterDesigner
  • 控制研究的混杂因素(Confounder)

    高高兴兴地写完一篇 SCI 投稿 苦苦等待好久 却只等来审稿人的一句话 你有控制研究的混杂因素 Confounder 吗 额 什么是混杂因素 又该如何控制 其实 混杂因素的控制在研究设计阶段就应该注意 今天 笔者就从 什么是混杂因素 为什么
  • C++学习:动态内存

    动态内存 静态内存用来保存局部static对象 类static数据成员 定义在任何函数之外的变量 static对象在使用之前分配 在程序结束后销毁 栈内存用来保存定义在函数内的非static对象 对于栈对象 仅在其定义的程序块运行时才存在
  • LR寄存器

    异常的发生会导致程序正常运行的被打断 并将控制流转移到相应的异常处理 异常响应 有些异常 fiq irq 事件处理后 系统还希望能回到当初异常发生时被打断的源程序断点处继续完成源程序的执行 异常返回 这就需要一种解决方案 用于记录源程序的断
  • android 调用短信,Android 调用发送短信的方法

    Android 调用发送短信的方法 功能 调用发送短信功能 1 权限 2 具体实现 Uri smstoUri Uri parse smsto Intent intent new Intent Intent ACTION VIEW smsto
  • 在C#中使用Halcon开发视觉检测程序

    本文的初衷是希望帮助那些有其它平台视觉算法开发经验的人能快速转入Halcon平台下 通过文中的示例开发者能快速了解一个Halcon项目开发的基本步骤 让开发者能把精力完全集中到算法的开发上面 首先 你需要安装Halcon HALCON 18
  • 图像分类,目标检测,语义分割的FC的区别

    还有半个月就要过年啦 提前给大伙拜个年哈哈 快放假了又进入了划水的阶段啥都不太想干 但是就算是划水也不能中断思考啊 谁让咱是搞技术的呢 过去的几个月里把语义分割 目标检测和图像分类都稍微了解了一下 因为是入门阶段所以聊得东西都比较简单 这篇
  • java 冥计算,次方

    1 乘以某个数的冥 BigDecimal one new BigDecimal Math pow 2 5 2的5次方 BigDecimal two new BigDecimal 10 乘数 BigDecimal multiply one m
  • unity主场景设置、场景切换、全屏设置、背景音乐设置(场景一加载就开始播放)

    主场景设置 最简单的方法 一般情况下我们的场景会有挺多的 这时候我们进入游戏就会有问题了 unity应该先加载哪一个呢 unity给了我们几种方案 其中一种是在文件 生成设置里面更改游戏场景的优先级 其中0是最高优先级 当然 必须得先把场景
  • 2023最新springboot计算机毕业设计选题大全(附源码+论文答辩),别再发愁毕设了。

    2023最新springboot计算机毕业设计选题大全 附源码 论文答辩 别再发愁毕设了 要对当前自己的学校对于计算机毕业设计的要求以及严格程度有所了解 这个主要是借助上一届已经毕业的学长学姐了解一下 但是有一点要注意的是 对于每一届毕业生
  • 希尔排序—C语言实现

    目录 前言 希尔排序 发展历史 基本思想 时间复杂度 我们以一组数字来说操作说明 gap的选取 动图演示 代码 总结 前言 在学数据结构的第一节课就知道了数据结构课程是要管理并且学会操作数据 当然操作数据首先想到的就是数据的排序 排过顺序的
  • PHP正则表达式匹配教程

    一 什么是正则表达式 正则表达式是一种用于搜索 匹配 替换某种文本的字符串模式 常用于处理文本数据 校验输入数据等 在PHP中 可以使用preg系列函数 preg match preg replace等 处理正则表达式 二 正则表达式语法
  • 解决org.apache.hadoop.ipc.RenoteException(java.io.IOException)

    前言 用VMware搭了一个spark 集群环境 练习spark shell 因为懒一直没关虚拟机 一直卡到玩不了了 没关闭spark hadoop集群 直接干掉了 虚拟机 然后 网卡炸了 各种修修补补 master节点死活ping不通 子
  • 连接mysql的url是什么意思_URL是什么意思?

    这个维基百科上有翻译 URL Uniform Resource Locator 统一资源定位符 URI Uniform Resource Identifier 统一资源标志符 URL 是一种比较统一的带参数指向某个地址的格式 格式为 协议类
  • 私有云笔记推荐(obsidian+nas同步)

    文章目录 Joplin Leanote 蚂蚁笔记 obsidian webdav 内网穿透 Trilium vnote 总结 nas同步 Obsidian Joplin https joplinapp org https www jians
  • C++11 原子变量

    目录 什么时原子变量 atomic 类成员 原子变量的使用 C C Linux服务器开发 后台架构师 零声教育 学习视频教程 腾讯课堂 什么时原子变量 原子操作 原子指的是一系列不被 CPU上下文交换的机器指令 这些指令组合在一起就形成了原
  • Sonar安全

    1 Using Struts 1 ActionForm is security sensitive 使用Struts1的ActionForm是安全敏感的 All ActionForm s properties should be valid
  • doccano 解决 pydantic.errors.PydanticImportError: `pydantic:ConstrainedStr` has been removed in V2.

    文章目录 报错信息 环境 描述 解决措施 其他 doccano一直转圈圈 报错信息 File C Users anaconda3 envs UIE lib site packages pydantic migration py line 2
  • 通过axios实现的一个搜索查询展示案例

    代码如下 App js import React Component from react import Search List from components export default class App extends Compon