创建远程数据源
用户可以通过数据源面板添加远程 API 配置:
- 名称- 远程 API 的唯一标识,需要遵守 JS 的变量定义规则;
- 描述- 定义远程 API 的描述信息,在变量绑定时会透出该描述信息;
- 自动加载- 开启了“自动加载”的数据源会在页面渲染之前请求远程接口,并将返回数据直接赋值到以远程 API 命名的全局变量上,所有自动加载的数据源加载完成之后才开始渲染页面;
-
加载方式- 宜搭提供以下两种不同的加载方式(默认并行加载):
- 串行 - 所有串行数据源会从上到下执行,如果有相互依赖的,被依赖的数据源需要在前面;
- 并行 - 所有并行数据源同时执行;
- 请求地址- 远程 API 的访问地址,如果是宜搭提供的 openAPI 可以使用相对路径,如果是第三方服务提供的接口需要支持跨域访问;
- 请求方式- 宜搭提供通用的异步请求方法:JSONP、GET、POST、PUT、DELETE;
- 请求参数- 用于设置异步请求的请求参数,支持静态配置或绑定变量;
- 是否发送请求- 支持传入一个布尔值,通过这个变量去判断这个请求是否应该发出。这个输入域也可以输入变量表达式以决定是否需要发送请求;
-
数据处理- 宜搭提供四类数据处理函数,用于在不同阶段进行切片处理:
- willFetch- 请求发送前处理函数,willFetch 允许用户在发送请求前修改请求的各种参数。示例:
- fit- 请求返回时的数据适配,fit 可以修改请求的原始 Response 以适配对应的数据请求格式。示例:
- didFetch- 请求完成回调函数,didFetch 允许用户对接收到的数据进行修改, 和 fit 不同的是, 接口返回的 success 为 true 才会执行。示例:
- onError- 请求错误处理函数,onError 用于捕获远程数据源的接口异常,接口返回的 success 为 false 时会执行, 示例:
- 默认数据- 指定接口的默认数据,若接口未返回或者请求失败将返回默认数据;
API
宜搭远程 API 提供以下两个 API:this.dataSourceMap.xxx.load()
手动调用指定的远程 API,xxx 为在数据源面板设置的数据源名称,同时支持传入请求参数,API 调用传入的请求参数将于数据源配置中的请求参数进行 merge 并发送请求,load 方法返回一个 Promise。 示例:this.reloadDataSource()
重新请求所有自动加载设置为 true 的远程 API。 示例:使用场景
远程数据源在系统开发中非常常见,它是建立前端页面和后端服务的桥梁,在宜搭平台我们有以下最常见的两种使用远程数据源的场景:自动加载数据源
有时候我们需要在用户进入页面时就自动加载数据,并将这些数据展示在页面中,例如我的待办任务列表场景。- 我们通过配置自动加载数据源来加载待办任务 (自动加载数据源会在请求完成后自动将然后结果挂载到全局变量上,对应的变量名称为数据源的名称),如下所示:

- 然后我们需要通过一个表格组件将我们自动加载的待办数据展示出来,如下所示:
- 设置表格的数据源变量绑定 state.todoList;

- 设置表格的字段映射字段及对应的类型;

- 最后我们点击设计器的预览按钮便可以看到待办任务数据展示在了表格中了;

手动加载数据源
有时候我们需要在用户交互时通过事件处理手动调用数据源进行一些操作,例如当用户点击删除按钮时调用远程 API 删除待办任务。- 我们先配置一个删除任务的远程 API,如下所示:

- 接下来我们需要给表格增加一个删除操作项,并且当用户点击删除项时通过手动调用远程 API 完成删除操作,如下所示:
- 设置表格的操作列属性:

- 增加一个操作项:

- 设置操作项标题,在回调函数中为该操作项绑定一个动作:


- 实现 onDelete 函数,手动加载数据源,实现删除操作:

- 最后我们点击设计器的预览按钮便可以看到表格的操作列出现了一个删除操作项,点击对应的删除按钮便会执行删除操作并刷新列表;
