基于ts的动态接口数据配置的详解
需求前景
前端组件是可复用的,那么复用前端组件时从后端读取的数据源同样也需要可复用(后端api也要是配置化的方式进行),前端需要提供配置项给后端进行动态配置生成api。
具体实现流程
名词解析
mock规范约束
使用的ts的interface进行编译前校验,所有的组件接收的mock结构,都必须是该Interface的实现
解析器
将mock打平成key,value结构的工具
eg.
interfaceI_EchartOption{
series:{
data:{
name:string;
value:numberOrString;
unit?:string;
}[];
name?:string;
type:"pie";
};//数据集配置
}
constmock:I_EchartOption={
series:[
{
type:"pie",
data:[
{
name:"中药",
value:"2630",
unit:"家",
_viewData:{//通过组合的自定义属性
}
},
]
}
]
}
constparsingMock=(mock:I_EchartOption):T_formInfo=>{}
parsingMock(mock)
//返回一个Mock描述,见下文
mock描述
mock描述,功能有两个
- 逆向生成mock
- 接收后端传递的build_option.options,渲染控制表单。
typeT_formInfo={//mock描述的接口
key:string,//值得路径嵌套
value:string,//解析出来的value
build_component:string,//承载改配置项的表单组件
build_option:{//传递给表单组件的参数
options:any[],//通过请求后端,让后端进行填充
[key:string]:any
},
}
[
{
"key":"series.0.data",
"build_component":"seriesData",
"build_option":{
"options":[]
"dataLength":1
},
"formValue":"",
},
{
"key":"series.0.data.0._viewData",
"build_label":"副指标series.0.data.0._viewData",
"build_component":"viewData",
"build_option":{
"options":[]
"isShowTitle":false,
"_viewDataMaxLength":1
},
},
{
"key":"series.0.type",
"value":"pie"
}
]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。