1.20 实现百度搜索

2023-11-19

1:axios不支持jsonp

import React, {Component} from 'react'
import ReactDOM from 'react-dom'
// https://github.com/webmodules/jsonp包
import oldJSONP from 'jsonp'

function jsonp(url, opts = {}) {
    return new Promise((resolve, reject) => {
        //url是jsonp请求的路径,opts是请求的属性,第三个参数是成功回调
        oldJSONP(url, opts, function (err, data) {
            if (err) reject(err)
            resolve(data)
        })
    })
}

//async + await(后跟promise,有await,就需要async来修饰该函数)
class Search extends Component {
    //页面加载完毕之后加载这个方法
    // async componentDidMount(){
    //     //{param:'cb'}是百度搜多规定的
    //     let result=await jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a',{param:'cb'})
    //     // console.log(result)
    //     // return result
    // }
    constructor() {
        super()
        this.state = {
            val: '',
            arry: [1, 2, 3, 4],
            index: -1
        }
    }

    handleChange = async (e) => {
        let str = e.target.value
        //解构赋值
        var {s} = await jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=' + str, {param: 'cb'})
        this.setState({
            val: str,
            arry: s
        })
    }
    changeIndex = (e) => {
        let index = this.state.index
        if (e.keyCode === 38 || e.keyCode === 40) {
            if (e.keyCode === 38) {
                index--
            } else {
                index++
            }
            this.setState({
                index,
                val: this.state.arry[index]
            })

        }
    }

    render() {
        return (
            <div className={'container'}>
                <div className={'panel panel-default'}>
                    <div className={'panel-heading'}>
                        <div className="input-group">
                            {/*input后面必须写/,否则会报错*/}
                            <input type="text" className="form-control" placeholder="Search for... "
                                   value={this.state.val} onChange={this.handleChange} onKeyDown={this.changeIndex}/>
                        </div>
                    </div>
                    <div className={'panel-body'}>
                        <ul className={"list-group"}>
                            {
                                this.state.arry.map((item,index) => {
                                    // 这里一定要加return
                                   return <li className={index==this.state.index?'active list-group-item':'list-group-item'} key={index}><span>{item}</span></li>
                                })
                            }
                        </ul>
                    </div>
                </div>
            </div>
        )
    }
}

ReactDOM.render(
    <Search></Search>
    , document.getElementById('root'))

这里写图片描述

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

1.20 实现百度搜索 的相关文章

  • 解决pycharm安装python第三方库时遇到的问题——pycharm实体环境与虚拟环境

    目录 关于cmd打开cd操作的提示 1 pycharm虚拟环境和本地环境有啥区别 2 实体环境和虚拟环境怎么安装库 3 如何查询实体环境安装的库和虚拟环境安装的库 4 怎么切换本地环境或虚拟环境 5 总结使用pycharm时常见的3中环境
  • Jenkins插件开发之环境构建

    1 环境 1 1 jdk 1 1 1 下载 Java Platform Standard Edition 8 ReferenceImplementations 或其他途径下载 1 1 2 java环境配置 1 1 2 1 右键此电脑 属性
  • 【Python】实用小脚本

    本文整理了我在学习和工作中用到的实用python脚本 希望也能帮助到需要的小伙伴 文章目录 视频格式转换 pip快速下载命令 多进程处理百万图片数据集 视频格式转换 安装视频处理库moviepy pip install moviepy 安装
  • 【程序员面试金典】请设计一个算法,求出a和b点的最近公共祖先的编号。

    题目描述 有一棵无穷大的满二叉树 其结点按根结点一层一层地从左往右依次编号 根结点编号为1 现在有两个结点a b 请设计一个算法 求出a和b点的最近公共祖先的编号 给定两个int a b 为给定结点的编号 请返回a和b的最近公共祖先的编号
  • JavaWeb servlet的使用

    在jsp文件中没有java代码我们才算是学完啦 从EL表达式和JSTL标签 在减少在login jsp和index jsp中的java代码 而今天的学习是让在jsp中彻底没有java代码 原本写在doLogin jsp做登录判断的java代
  • 图像检索传统算法学习笔记

    图像检索领域传统算法学习笔记 与组内同学一起找到的一些图像检索传统算法 作一小结 以防忘记 性能统计 传统图像检索算法 CIFAR 10数据集mAP值 编码数不同 LSH局部敏感哈希 0 116 0 131 SH谱哈希 0 124 0 12
  • PhotoShop 之钢笔工具

    钢笔工具如下如 1 绘制直线 若按住Shift 键 单击鼠标左键可以绘制90度或者45度直线 按住Ctrl 并在空白处 单击鼠标左键 可退出绘制模式 2 绘制曲线 绘制第一个点单击 绘制第二个点的时候 按住鼠标左键并拖动即可绘制曲线 若想绘
  • 栈的讲解及实现(图解+代码/C语言)

    今天为大家分享的是栈的模拟实现 本文主要讲解如何以数组的形式模拟实现 同时给出链表模拟实现栈的代码 目录 图解栈的结构 数组模拟栈的分步实现 创建并初始化 入栈 检测栈是否为空 出栈 获取栈顶元素 获取栈内有效元素个数 销毁栈 链表模拟实现
  • 世界名着100部简介

    01 傲慢与偏见 02 孤星血泪 03 雾都孤儿 04 唐 吉诃德 05 安娜 卡列尼娜 06 飘 07 简 爱 08 悲惨世界 09 茶花女 10 基督山恩仇记 11 童 年 12 这里的黎明静悄悄 13 钢铁是怎样炼成的 14 战争与和
  • linux安装和卸载gcc g 4.8,CentOS 编译安装gcc 4.8 为了支持C++11新特性

    gcc属于gun软件 下载gun所有软件 1 编译gcc的时候 还是需要存在gcc g 2 等编译完成 卸载系统的gcc g 3 测试c 11 chunli CentOS sudoyuminstallgccgcc c chunli Cent
  • pathon爬虫,制作云图

    转载请标明出处 http blog csdn net forezp article details 70198541 本文出自方志朋的博客 今天一时兴起 想用Python爬爬自己的博客 通过数据聚合 制作高逼格的云图 对词汇出现频率视觉上的
  • 关于xilinx BRAM IP的延迟以及流程

    关于RAM IP的延迟 1 选择了output registers 可以在RAM输出端口添加register 也可以在core的输出添加 在primitives添加 降低clock to out到primitive的延迟 在core添加re
  • MySQL之数据库引擎详解(内附面试题:InnoDB和MyISAM的联系与区别)

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于MySQL数据库引擎的相关操作吧 目录 Welcome Huihui s Code World 一 数据库引擎是什么 1 数据库引擎概念 2 最常见的引擎 I
  • Hive:Unable to open a test connection to the given database. JDBC url = jdbc:mysql://master12:3306

    hive启动不成功 一直报各种错 我是执行这条命令出的错 hive service metastore 这个问题困扰了我两三天一直没解决 网上找了各种方法基本都试过 还是不行 可能每个人的原因也不太一样吧 我说我的解决方法 可以试下 1 检
  • 曼哈顿算法公式_Manhattan Distance Calculation(曼哈顿距离算法)

    首先介绍一下曼哈顿 曼哈顿是一个极为繁华的街区 高楼林立 街道纵横 从A地点到达B地点没有直线路径 必须绕道 而且至少要经C地点 走AC和CB才能到达 由于街道很规则 ACB就像一个直角3角形 AB是斜边 AC和CB是直角边 根据毕达格拉斯
  • 【springboot+mybatisplus】分页查询-单表/联表

    参考链接 https www jianshu com p 0a21569f1e06 单表的分页查询用mybatisplus的selectPage就可以实现 联表的分页查询需要自己写sql语句 因为老哥不让写sql语句在DAO层 难看 所以写
  • 图书信息添加

    实现图书信息添加的添加功能并创建字符编码过滤器 避免中文乱码现象的产生 1 创建字符编码过滤器对象 创建字符编码过滤器对象 其名称为CharactorFilter类 该类实现了javax servlet Filter接口 并在doFilte

随机推荐

  • AD采样出来的数值与实际值之间的关系

    当刚接触AD采样时 一直对于AD采集出来的数值与实际的值之间的关系有些模糊 现在闲暇下来打算记录一下 这里以采集量为电压量来记录 当采集温度 电流等模拟量时 都是通过一个电路把模拟量转化为一个电压量输入进AD采样引脚 就不一一叙述 AD采样
  • 结构体对齐(内存对齐)

    本文转自 http www ksarea com articles 20071004 sizeof struct memory html 有的时候 在脑海中停顿了很久的 显而易见 的东西 其实根本上就是错误的 就拿下面的问题来看 struc
  • 【面试刷题】——C++公有继承保护继承和私有继承

    在C 中 有三种继承方式 公有继承 public inheritance 保护继承 protected inheritance 和私有继承 private inheritance 这些继承方式决定了派生类如何继承基类的成员和访问权限 公有继
  • 一文揭秘饿了么跨端技术的演进、实践与落地

    本文会先带领大家一起简单回顾下跨端技术背景与演进历程与在这一波儿接着一波儿的跨端浪潮中的饿了么跨端现状 以及在这个背景下 相较于业界基于 React Vue 研发习惯出发的各种跨端方案 饿了么为什么会选择走另外一条路 这个过程中我们的一些思
  • python稳健回归_statsmodel线性回归(ols)的稳健性问题-Python

    我用统计模型测试了一些基本的类别回归 我建立了一个确定性模型Y X Z 其中X可以取3个值 a b或c Z只能取2 d或e 在那个阶段 模型是完全确定的 我为每个变量设置了如下的权重a s weight 1 b s weight 2 c s
  • Vue基础1:生命周期汇总(vue2)

    Description 生命周期图 可以理解vue生命周期就是指vue实例从创建到销毁的过程 在vue中分为9个阶段 创建前 后 载入前 后 更新前 后 销毁前 后 其他 常用的有 created mounted destroyed 一 创
  • Java中String 和 int 的相互转换

    int gt String int i 12345 String s 第一种方法 s i 第二种方法 s String valueOf i 这两种方法有什么区别呢 作用是不是一样的呢 是不是在任何下都能互换呢 String gt int s
  • 假期实习-踩坑日记

    vue3 x 7 16 elementplus 导入 不同于2 0的导入方式 3 x中main js应当改成如下 import createApp from vue import installElementPlus from plugin
  • 黑盒测试用例设计--题目2

    1 根据下面给出的规格说明 进行测试用例的设计 一个程序读入3个整数 把这三个数值看作一个三角形的3条边的长度值 这个程序要打印出信息 说明这个三角形是普通的 是等腰的 还是等边的 测试用例 2 保险费率计算 某保险公司承担人寿保险 该公司
  • vue中阻止冒泡 阻止默认行为

    1 事件冒泡 不再派发事件 方法 event stopPropagation html
  • 分享一款谷歌插件adguard

    下载地址 链接 https pan baidu com s 1jMAA6kNMr1yqjQKXb7aMtQ 提取码 0kk3
  • PowerShell基础教程(5)——如何自定义 Windows PowerShell

    PowerShell基础教程 5 如何自定义 Windows PowerShell
  • RK3568 IDB烧录失败解决方法

    1 简介 公司有个RK3568的项目使用了三星的8GB eMMC5 1 KLM8G1GETF B041 但在硬件回板的时候 发现个别单板程序烧不进去 会报下载IDB失败 部分串口打印日志如下 DDR Version V1 09 202106
  • 【Grafana】CentOS下安装Grafana

    Grafana CentOS下安装Grafana 本文主要是在CentOS下对Grafana的安装和配置等进行介绍 以及一些踩过的坑 文章目录 Grafana CentOS下安装Grafana 一 基本介绍 二 安装方法 1 从YUM存储库
  • Android SQLite数据库升级

    Android操作SQLite数据库要实现SQLiteOpenHelper类 SQLiteOpenHelper的实现类要重写两个方法onCreate和onUpgrade onUpgrade方法就是用于SQLite数据库升级 问题一 数据库升
  • 2022年2月份谷哥学术资源分享下载列表 20/20

    资源名称 下载地址 关键词 项目反应理论与经典测验理论之比较 pdf https download csdn net download tysonchiu 79246540 技术文档 响应面方法在优化微生物培养基中的应用 pdf https
  • unity 如何切换输入系统(Input System)

    问题描述 在 Unity2019 版本中 加入了新的 Input System Package 当导入包的时候可能会将旧的输入系统禁用 这时如果再打开使用旧的输入系统的项目可能会出现异常 InvalidOperationException
  • jvm 远程调试配置

    jstatd方式 创建配置文件 随便找个目录就可以 cat gt jstatd policy grant codebase file java home lib tools jar permission java security AllP
  • xcodebuild 命令打包

    xcodebuild命令行打包 在使用xcodebuild编译后发现有些东西有些临时性质的东西 依然存在 搜索了一些资料 找到有clean的命令 在之前打包都是生成app文件 将app打包成ipa文件需要编写一个脚本 操作起来相对麻烦 原来
  • 1.20 实现百度搜索

    1 axios不支持jsonp import React Component from react import ReactDOM from react dom https github com webmodules jsonp包 impo