File size: 1,551 Bytes
c9d0005
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
---
order: 4
toc: content
mobile: false
group: 
  title: 高级用法
  order: 1
---

# 组件按需
FormRender 内置了很多控件,包括基础控件、嵌套控件、以及列表控件。有些组件可能在项目中从来都不会用到,希望组件按需引入。

这种情况下可以使用 `FormSlimRender` 按需加载组件,将需要的组件传入内部。


## 使用方式

<code src="./demo/form-slim/basic.tsx"></code>

## 列表组件

对于列表组件的按需使用,除了引入列表本身,还需引入列表嵌套组件,否则不能正常渲染。

<code src="./demo/form-slim/form-list.tsx"></code>

默认的嵌套组件为 `Collapse`,如需使用其他嵌套组件,需要在 schema 中指定 widget 属性。
```js
const schema = {
  type: 'object',
  displayType: 'row',
  properties: {
    list: {
      title: '列表按需',
      type: 'array',
      widget: 'simpleList',
      items: {
        type: 'object',
        widget: 'Card', // 自定义嵌套组件
        properties: {
          input1: {
            title: '输入框',
            type: 'string',
          },
        },
      },
    },
  },
};
```

## 内置的组件
```js

// 基础控件
Input,
Number,
TextArea,
Select,
MultiSelect,
Switch,
Radio,
CheckBox,
Checkboxes,
Date,
DateRange,
Time,
TimeRange,

Color,
Rate,
TreeSelect,
ImageInput,
UrlInput,
Slider,
Upload,
Html,
PercentSlider,

// 嵌套控件
Card,
Collapse,
SubInline,
LineTitle,

// 列表控件
SimpleList,
CardList,
TableList,
DrawerList,
VirtualList,
TabList,
```