# 一键生成查询组件所需的全部配置 `getOption`

文档地址：./getOption.js（源码及注释就是文档！）

##  为什么有这个东西

同一项目中多处页面会存在大量相同的查询项，如果按照以前编写代码的方式。需要在多处页面中复制粘贴多份相同的查询项配置。

而且还需要在多处页面中导入多个请求函数，并且需要请求数据源再 `findKey` 设置到数组对象中。

如果多处页面的相同查询项存在联动，存在改变后的特殊处理，那相同的代码就更多了。

很麻烦，不是吗？

`getOption` 就是为了将这一段重复的操作从业务中剥离开来而诞生的

##  如何使用

在业务项目中新建文件夹 `/utils/getOption`，此文件夹用于存储项目中常见的 `查询项配置`，及 `查询项请求配置`，及 `查询项特殊处理`，再导出两个方法 `getOption`, `getOptionList`

文件夹结构及内容，可参考example文件夹

在 `getOption` 初始化后，就可以在页面中导入 `getOption`, `getOptionList` 来使用。一般建议用 `getOptionList`。

具体的调用方式和传参也可以参考example文件夹

##  解决了什么问题

1. 避免复制代码的操作，不再担心代码重复率的问题
2. 无需自行请求数据源，无需再 `findKey` 来设置数据源到具体查询项
3. 对于带有特殊操作的下拉，无需再在多个页面中重复编写逻辑
4. 提供了直接使用键名去获取查询项的功能，再也不用 `findKey` 寻找并设置查询项的属性
5. 提供了快速请求数据源，快速请求数据源并设置数据源的方法
6. 流程化生成查询项，并提供丰富的生命周期钩子和自定义属性来自定义修改

##  可以用吗？考虑的场景足够吗？

目前项目二组招生有两个项目在用，经过数月的打磨，基本满足绝大部分的场景。

如果真的遇到需要扩展的场景，再添加功能。
