基于ts的动态接口数据配置的详解


Posted in Javascript onDecember 18, 2019

需求前景

前端组件是可复用的,那么复用前端组件时从后端读取的数据源同样也需要可复用(后端api也要是配置化的方式进行),前端需要提供配置项给后端进行动态配置生成api。

具体实现流程

基于ts的动态接口数据配置的详解

名词解析

mock 规范约束

使用的ts的 interface 进行编译前校验,所有的组件接收的 mock 结构,都必须是该 Interface 的实现

解析器

将mock打平成 key,value 结构的工具
eg.

interface I_EchartOption {
 series: {
   data: {
    name: string;
    value: numberOrString;
    unit?: string;
   }[];
 name?: string;
 type: "pie";
}; // 数据集配置
}
const mock:I_EchartOption = {
 series: [
  {
   type: "pie",
   data: [
    {
     name: "中药",
     value: "2630",
     unit: "家",
     _viewData:{ // 通过组合的自定义属性
       
     }
    },
   ]
  }
 ]
}
const parsingMock=(mock:I_EchartOption):T_formInfo=>{}
parsingMock(mock)
// 返回一个 Mock 描述,见下文

mock 描述

mock 描述,功能有两个

  1. 逆向生成 mock
  2. 接收后端传递的 build_option.options,渲染控制表单。
type T_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"
    }
  ]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
google地图的路线实现代码
Aug 20 Javascript
利用JS重写Cognos右键菜单的实现代码
Apr 11 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
CSS3 media queries结合jQuery实现响应式导航
Sep 30 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
JavaScript实现无刷新上传预览图片功能
Aug 02 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
微信小程序自定义组件实现环形进度条
Nov 17 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
如何解决日期函数new Date()浏览器兼容性问题
Sep 11 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 Javascript
H5实现手机拍照和选择上传功能
Dec 18 #Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 #Javascript
js实现上传图片并显示图片名称
Dec 18 #Javascript
js实现多图和单图上传显示
Dec 18 #Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
Dec 18 #Javascript
微信小程序实用代码段(收藏版)
Dec 17 #Javascript
微信小程序修改数组长度的问题的解决
Dec 17 #Javascript
You might like
PHP中用hash实现的数组
2011/07/17 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php文件缓存类汇总
2014/11/21 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
Python解释执行原理分析
2014/08/22 Python
Python字符串逐字符或逐词反转方法
2015/05/21 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
np.dot()函数的用法详解
2020/01/17 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
护士上岗前培训自我鉴定
2014/04/20 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
师范类求职信
2014/06/21 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
百万英镑观后感
2015/06/09 职场文书
暑假打工感想
2015/08/07 职场文书
丧事答谢词大全
2015/09/30 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis