# github_SearchList
**Repository Path**: chen-hongxin/github_-search-list
## Basic Information
- **Project Name**: github_SearchList
- **Description**: 基于 React 实现的一个 github 搜索案例
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2021-07-29
- **Last Updated**: 2021-09-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: React
## README
# github_SearchList
### github搜索案例相关知识点
- 设计状态时要考虑全面,例如带有网络请求的组件,要考虑请求失败怎么办。
- ES6小知识点:解构赋值+重命名
```
let obj = {a:{b:1}}
const {a} = obj; //传统解构赋值
const {a:{b}} = obj; //连续解构赋值
const {a:{b:value}} = obj; //连续解构赋值+重命名
```
- 消息订阅与发布机制
- 1.先订阅,再发布(理解:有一种隔空对话的感觉)
- 2.适用于任意组件间通信
- 3.要在组件的 componentWillUnmount 中取消订阅
- fetch发送请求(关注分离的设计思想)
```
try {
onst response= await fetch(`/api1/search/users2?q=${keyWord}`)
const data = await response.json()
console.log(data);
} catch (error) {
console.log('请求出错',error);
}
```
### 使用说明
- 1. 命令行输入` npm install` 安装所需要的包
.jpg")
- 2. 运行服务器:在 server 文件夹的路径下输入命令 `npm start`
.jpg")
- 3. 将三个文件夹中的某一个改名为 src(三个文件夹是三个不同版本,代码有差异)
- 第一个文件夹是原始版本:使用 xhr 发送网络请求、使用 props 在父子组件间传递数据
- 第二个文件夹改动处为:使用了消息订阅与发布机制代替 props
- 第三个文件夹改动处为:使用了 fetch 代替 xhr 发送网络请求
- 4. 命令行输入 `npm start` 运行程序
.jpg")
### 页面展示
.jpg")