reactjs - 从搜索 API 获取项目的最佳方式是什么?
问题描述
我有一个 React 应用程序,它使用 Github 搜索 API 获取 Github 存储库,函数如下所示;
const searchEverything = (input: string) => {
if (input.length > 2) {
setSearchPageStatus(true);
fetch(`https://api.github.com/search/repositories?q=${input}`)
.then((res) => res.json())
.then((data) => {
setRepoCount(data.total_count);
setRepos(data.items);
});
fetch(`https://api.github.com/search/users?q=${input}`)
.then((res) => res.json())
.then((data) => {
setUserCount(data.total_count);
setUsers(data.items);
});
} else {
setSearchPageStatus(false);
}
};
所以我得到这样的“onChange”属性的项目;
<input onChange={(e) => searchEverything(e.target.value)}
type="search"
className="header__search__input"
placeholder="Search..."
/>
我没有收到错误或类似的东西。但是正如您在每个按键上看到的那样,都有一个 API 调用,我觉得它效率不高,如果您的单词很长,可能会出现错误 403。那么有没有更好的方法来使用这个 API 呢?我认为的解决方案只是放一个按钮并在点击后进行搜索,但这只会带走所有的活力。
解决方案
推荐阅读
- amazon-web-services - 不同的 ECS 停止时间是什么意思?
- html - 您如何在屏幕点击时播放 html5 视频?
- jenkins - 当方法没有参数时,这个 Groovy 代码可以简化吗?
- c - qsort 函数与带有 char poiter 成员的 structre 一起工作
- javascript - JSDOM 从字符串中删除尾随的新行和空格
- php - PHPMailer 联系表 - 联系表。打开页面后的错误
- html - 从谷歌搜索控制台中删除属性是否会从搜索结果中删除该网站?
- sql - 将字段的行与连接查询中的其他字段一起连接到一个字符串
- elasticsearch - Elasticsarch:原始字段和关键字字段之间的区别
- ios - 为什么 Xcode 的界面构建器将 UIView 创建为“电话”