Skip to content

Commit 8fc0dd1

Browse files
committed
doc(request): 修改文档说明
1 parent d9882b1 commit 8fc0dd1

File tree

1 file changed

+98
-9
lines changed

1 file changed

+98
-9
lines changed

examples/website/src/pages/request/README.md

Lines changed: 98 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,119 @@
11
# 网络请求
2-
简介
3-
对于中后台应用来说,很大一部分工作就在于请求后端的 CRUD 的接口,为进一步降低用户对请求层的感知,我们移除了默认生成的 utils/request.ts 文件,改成通过配置化的方式暴露给开发者做请求的配置和增强处理;同时通过业务总结出一套标准的接口结构规范,并提供统一的接口解析、错误处理的能力;后续将持续完善可配置项、提供垂直场景如列表、登录失效等解决方案。
2+
3+
对于中后台应用来说,很大一部分工作就在于请求后端的 CRUD 的接口,为进一步降低用户对请求层的感知,我们集成了接口请求方案。同时通过业务总结出一套标准的接口结构规范,并提供统一的接口解析、错误处理的能力。
4+
5+
## @kkt/request
6+
7+
kkt内置请求方案。配置 `queryClient`开启。 `@kkt/request` 内置了 `react-query`(和 [`@tanstack/react-query`](https://npmjs.com/@tanstack/react-query)<!--rehype:target=__blank--> 是同一个)请求方案。更多 API 方法请查看 [react-query 官方文档](https://tanstack.com/query/latest)
8+
9+
**`kktp`配置文件**
10+
11+
```ts
12+
// .kktprc.ts
13+
export default {
14+
queryClient: true
15+
}
16+
```
17+
18+
```js
19+
import { useReactQuery, useReactMutation, queryClient, fetchFn } from '@kkt/request';
20+
// OR
21+
import { useReactQuery, useReactMutation, queryClient, fetchFn } from '@kkt/pro';
22+
```
23+
24+
**useReactQuery**
25+
26+
主要用于**默认**触发请求数据,默认 `GET` 请求,变更使用 `method="POST"` 参数配置
27+
28+
```jsx
29+
useReactQuery({
30+
queryKey: ['user', userId],
31+
url: `/api/user/list?id=${userId}`
32+
});
33+
```
34+
<!--rehype:style=background:#00de2247;border: 0;-->
35+
36+
👆👆👆👆 上面是**推荐**使用 👆👆👆👆👆
37+
38+
```jsx
39+
import { fetchFn, useReactQuery } from '@kkt/request';
40+
41+
useReactQuery({ queryKey: ['user'], url: '/api/user/list' });
42+
useReactQuery({ queryKey: ['user'], url: '/api/user/list', method: 'POST' });
43+
useReactQuery({ queryKey: ['user', userId], queryFn: () => fetchFn(`/api/user/list?id=${userId}`) });
44+
useReactQuery({
45+
queryKey: ['user', userId],
46+
queryFn: async () => {
47+
return fetchFn(`/api/user/list?id=${userId}`);
48+
},
49+
});
50+
useReactQuery({
51+
queryKey: ['user', userId],
52+
queryFn: ({ queryKey }) => fetchFn(`/api/user/list?id=${queryKey[1]}`);,
53+
});
54+
useReactQuery({
55+
queryKey: ['user'],
56+
url: '/api/user/list',
57+
initialData: [....],
58+
});
59+
60+
const { isInitialLoading, isError, data, error, refetch, isFetching } = useQuery(...)
61+
```
62+
63+
示例
64+
65+
```javascript
66+
import { useReactQuery } from '@kkt/request';
67+
68+
export default function HomePage() {
69+
const { isLoading, isError, data } = useReactQuery({
70+
url: `/api/user/list`,
71+
queryKey: ['user-list'],
72+
});
73+
74+
return (
75+
<div>
76+
<p className="title">ANEM x react-query</p>
77+
{isError && <p>请求 API 错误 ...</p>}
78+
{isLoading && <p>Loading ...</p>}
79+
{data && <p>ANEM 现在有 {data.stargazers_count} 颗星!</p>}
80+
</div>
81+
);
82+
}
83+
```
84+
85+
更多参数及实例才考[@kkt/request](https://kktjs.github.io/kkt-pro/#/doc/request)
86+
487
## request
588

6-
系统的请求基于axios进行了二次封装,参见[axios](https://axios-http.com/)
89+
`@uiw-admin/utils` 内置`request`方法。系统的请求基于axios进行了二次封装,参见[axios](https://axios-http.com/)
790

8-
## 方法
91+
```js
92+
import { request } from "@uiw-admin/utils"
93+
```
94+
95+
**方法**
996
基于restful规范,提供了2个方法:
1097
- get 获取服务端数据,参数拼接在url上,以 query string 方式发送给后端
1198
- post 新增数据,参数以body形式发送给后端
1299

13100

14-
## 参数
101+
**参数**
15102

16103
| 参数 | 说明 | 类型 | 默认值 |
17104
| :------ | :------- | :------------- | :----- |
18105
| url | 请求地址 | string | - |
19106
| options | 请求配置,即axios的配置, | Options | - |
20107

21-
### Options
108+
**Options**
22109
| 参数 | 说明 | 类型 | 默认值 |
23110
| :------ | :------- | :------------- | :----- |
24111
| body | 请求传递给后端的参数 | any | - |
25112
| requestType | 数据格式 | 'form' 或 'json' 或 'urlencoded' | - |
26113

27-
## 调用方式
28-
### ✨配和swr调用
114+
**调用方式**
115+
116+
**✨配和swr调用**
29117
> 如果已全局配置过swr,可不用传入request
30118
31119
```tsx
@@ -55,7 +143,8 @@ export default const Index = () => {
55143
}
56144

57145
```
58-
### 在rematch中使用
146+
**在rematch中使用**
147+
59148
> 在servers/index.js中
60149
```ts
61150
import { request } from "@uiw-admin/utils"

0 commit comments

Comments
 (0)