formily-request-monorepo
Version:
A flexible, lightweight, non-intrusive plugin for extending formily schema request data.
91 lines (70 loc) • 1.99 kB
Markdown
nav: { title: '指南', order: 1 }
title: 快速开始
order: 2
group: { title: '开始', order: 1 }
toc: content
## 安装
:::code-group
```bash [pnpm]
pnpm add @formily/reactive formily-request
```
```bash [npm]
npm install @formily/reactive formily-request
```
```bash [yarn]
yarn add @formily/reactive formily-request
```
:::
:::warning{title=注意}
formily-request 需要 peer 依赖 `@formily/reactive@>=2.2.27`,请确保已经安装。
具体原因请参考 [工作原理](/guide/working-principles)
:::
## 使用
### 基础配置
使用 Formily Request 只需要三个简单步骤:
1. 引入 formily-request
2. 使用外部 Schema 并注册自定义字段
3. 在 JSON Schema 中配置请求
```tsx | pure
import { createForm } from '@formily/core';
import { Schema, createSchemaField } from '@formily/react';
import { Select } from '@formily/antd-v5';
import fxr from 'formily-request'; // 第1步: 引入 formily-request
fxr.use(Schema).register(); // 第2步: 使用外部 Schema 并注册自定义字段 x-request
const SchemaField = createSchemaField({
components: {
Select,
},
});
const form = createForm();
const schema = {
type: 'object',
properties: {
select: {
type: 'string',
title: 'Select',
'x-decorator': 'FormItem',
'x-component': 'Select',
// 第3步: 使用 x-request 配置请求
'x-request': {
url: 'https://api.example.com/data',
method: 'GET',
params: { id: 10 },
format: '{{ (res) => res.list }}',
},
},
},
};
export const App = () => {
return (
<Form form={form}>
<SchemaField schema={schema} />
</Form>
);
};
```
### 工作原理
Formily Request 内部使用响应式机制来处理数据请求和更新。当组件初始化或依赖的响应式数据发生变化时,会自动触发请求并更新组件的数据源。
详细的工作原理和高级用法,请参考:[工作原理](/guide/working-principles)