2024年6月14日发(作者:)
当你需要在应用中封装 API 请求时,可以使用自定义 hook。下面是一个示例,展示了
如何创建一个封装了请求的自定义 hook:
```jsx
import { useState, useEffect } from 'react';
const useAPIRequest = (url) => {
const [data, setData] = useState(null);
const [isLoading, setIsLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
setIsLoading(true);
const response = await fetch(url);
const jsonData = await ();
setData(jsonData);
setIsLoading(false);
} catch (error) {
setError(error);
setIsLoading(false);
}
};
fetchData();
}, [url]);
return { data, isLoading, error };
};
export default useAPIRequest;
```
在上面的示例中,`useAPIRequest` 是一个自定义 hook,接收一个 URL 参数作为 API
请求的地址。它返回了 `data`、`isLoading` 和 `error` 三个状态,并在组件内部发起异步
请求并更新状态。
你可以在组件中使用这个自定义 hook,如下所示:
```jsx
import React from 'react';
import useAPIRequest from './useAPIRequest';
const MyComponent = () => {
const { data, isLoading, error } = useAPIRequest('');
if (isLoading) {
return <
}
if (error) {
return
}
return (
{/* 使用获取到的数据进行渲染 */}
{data &&
);
};
export default MyComponent;
```
在上面的示例中,我们通过调用 `useAPIRequest` hook 来获取数据。根据请求状态,我
们渲染不同的内容,如加载中的提示、错误信息或获取到的数据。
这样,你就可以方便地在应用中封装和重用 API 请求逻辑了。记得根据实际需求进行
适当的修改和扩展。
发布评论