react-fetching-library快速上手教程:用useQuery钩子5分钟获取你的第一个用户列表 react-fetching-library快速上手教程用useQuery钩子5分钟获取你的第一个用户列表【免费下载链接】react-fetching-librarySimple and powerful API client for react Use hooks or FACCs to fetch data in easy way. No dependencies! Just react under the hood.项目地址: https://gitcode.com/gh_mirrors/re/react-fetching-libraryreact-fetching-library是一个简单而强大的 React API 请求库它只依赖 React 本身没有任何其他依赖。通过useQuery钩子你可以在 5 分钟内让组件自动发起请求、管理加载状态并拿到用户列表数据。本教程面向新手带你完成从零到跑通的完整流程。为什么选择 react-fetching-library在引入 React Hooks 之后管理请求状态加载中、报错、重试往往需要写一堆useStateuseEffect。这个库把这些工作全部封装好了✅零依赖gzip 压缩后不足 3KB✅Hook 优先useQuery、useMutation、useSuspenseQuery一应俱全✅拦截器机制轻松注入 Host、Token 等请求配置✅内置缓存提供可扩展的 Cache Provider✅支持 SSR可用于 Next.js 等服务端渲染应用✅TypeScript 支持完整类型提示源码结构清晰核心钩子实现位于 src/hooks/useQuery/useQuery.ts欢迎深入阅读。第一步安装与创建客户端在项目根目录执行一条命令即可完成安装npm install react-fetching-library需要 React 16.8 或更高版本Hooks 支持。创建Client实例。所有选项都是可选的我们用一个请求拦截器给每个请求自动加上 Hostimport { createClient } from react-fetching-library; const HostInterceptor host () async action ({ ...action, endpoint: ${host}${action.endpoint}, }); export const Client createClient({ requestInterceptors: [HostInterceptor(https://your-api.com)], });这个拦截器的写法与示例项目 examples/use-query-hook/src/api/requestInterceptors/requestHostInterceptor.ts 完全一致。第二步定义请求 ActionAction 是一个描述请求的普通对象核心只有method和endpoint两个字段export const fetchUsersList { method: GET, endpoint: /users, };可参考示例定义 examples/use-query-hook/src/api/actions/fetchUsersList.ts它还用ActionUser[]泛型标注了返回类型让 TypeScript 自动推断payload的类型。第三步用 useQuery 钩子获取用户列表 这是整个教程的核心只需一行代码import { useQuery } from react-fetching-library; export const UsersListContainer () { const { loading, payload, error, query } useQuery(fetchUsersList); return ( div {loading span加载中.../span} {error span请求失败/span} {payload?.map(user span key{user.id}{user.firstName}/span)} button onClick{query}重新加载/button /div ); };useQuery会自动帮你处理返回值类型说明loadingboolean请求是否进行中payloadany接口返回的数据用户列表errorboolean是否出错queryfunction手动重新发起请求abortfunction取消进行中的请求resetfunction重置钩子状态组件卸载时会自动 abort 未完成的请求从根本上避免了竞态条件和内存泄漏这些逻辑都封装在 src/hooks/useQuery/useQuery.ts 的副作用中。 小技巧把useQuery的第二个参数设为false即可关闭自动请求实现点击按钮才加载的懒加载效果。第四步挂载 ClientContextProvider最后在应用根部用ClientContextProvider包住组件树把 Client 注入所有子组件const App () ( ClientContextProvider client{Client} UsersListContainer / /ClientContextProvider );参考完整入口写法 examples/use-query-hook/src/App.tsx。至此一个能拉取用户列表的页面就跑通了 接下来可以探索什么Suspense 模式用useSuspenseQuery配合 React Suspense统一展示一个全局加载态见 src/hooks/useSuspenseQuery/useSuspenseQuery.ts提交表单useMutation钩子专为 POST/PUT 等写操作设计适合配合 examples/crud-form/src/SubmissionFormContainer.tsx 的完整 CRUD 示例请求缓存通过createCache为 GET 请求设置 TTL避免重复请求示例见 examples/cache-provider/src/api/Client.ts错误边界QueryErrorBoundary可优雅捕获 404 等 API 错误源码位于 src/components/queryErrorBoundary/QueryErrorBoundary.tsx更多示例examples/ 目录下还有 Axios 集成、SSRNext.js等实战项目可参考现在你已经掌握了 react-fetching-library 的核心用法。去你的项目里换掉繁琐的useEffect请求代码体验零依赖数据获取的简洁吧【免费下载链接】react-fetching-librarySimple and powerful API client for react Use hooks or FACCs to fetch data in easy way. No dependencies! Just react under the hood.项目地址: https://gitcode.com/gh_mirrors/re/react-fetching-library创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考