# 数据源

## 使用数据源

### 添加数据源

在编辑器左侧边栏中选中数据源，在数据源面板右上角添加中选择对应的数据源类型（默认提供了两种基础的数据源）

[![alt 数据源列表](/data-source.png "数据源列表")](/data-source.png){target="_blank"}

### 配置属性字段

[![alt 新增数据源](/create-data-source.png "新增数据源")](/create-data-source.png){target="_blank"}

#### 基础数据源

静态数据，不会自动更新，可以通过配置方法，在方法中更新数据源

```js
({ dataSource, app }) => {
  dataSource.setData({
    // 数据
  });
}
```

然后再组件的事件联动中关联此方法，来触发数据源更新

#### HTTP数据源

通过配置HTTP相关参数(url, query, body, header等)通过网络api获取数据，该数据源拥有request方法，可通过此方法来刷新数据源

```js
({ dataSource, app }) => {
  dataSource.request();
}
```


### 在组件中使用


#### 数据源模板输入框（data-source-input）

formConfig.js
```js
[
  {
    type: 'data-source-input'
  }
]
```

[![alt 数据源模版](/data-source-input.png "数据源模版")](/data-source-input.png){target="_blank"}

#### 数据源字段选择器输入框（data-source-field-select)

formConfig.js
```js
[
  {
    type: 'data-source-field-select'
  }
]
```

#### 数据源选择器（data-source-select)


formConfig.js
```js
[
  {
    type: 'data-source-select'
  }
]
```
#### 数据源方法选择器（data-source-method-select)

formConfig.js
```js
[
  {
    type: 'data-source-method-select'
  }
]
```

#### 显示条件

当配置的条件成立时显示，反之隐藏

[![alt 显示条件](/display-cond.png "显示条件")](/display-cond.png){target="_blank"}

## 数据源开发

### 数据源规范

数据源的基础形式，需要有四个文件
- index 入口文件，引入下面几个文件
- formConfig 表单配置描述
- initValue 表单初始值
- event 定义联动事件，具体可以参考[组件联动](./coupling.html#组件联动)
- dataSource 数据源逻辑代码

