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

 更新时间:2019年12月18日 09:41:35   作者:虚光  
这篇文章主要介绍了基于ts的动态接口数据配置的详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

需求前景

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

具体实现流程

名词解析

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实现列出数组中最长的连续数

    JavaScript实现列出数组中最长的连续数

    这篇文章主要介绍了JavaScript实现列出数组中最长的连续数的方法及使用,需要的朋友可以参考下
    2014-12-12
  • javascript刷新父页面方法汇总详解

    javascript刷新父页面方法汇总详解

    这篇文章主要介绍了javascript刷新父页面方法汇总详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Javascript中call和apply函数的比较和使用实例

    Javascript中call和apply函数的比较和使用实例

    这篇文章主要介绍了Javascript中call和apply函数的比较和使用实例,本文试图用更加清晰简单的思路来分析解释这两个函数,需要的朋友可以参考下
    2015-02-02
  • JavaScript实现MD5加密的六种方式实例

    JavaScript实现MD5加密的六种方式实例

    这篇文章主要给大家介绍了关于JavaScript实现MD5加密的六种方式,在JS中可以实现MD5加密算法,可以使用第三方库或者自己编写代码实现,需要的朋友可以参考下
    2023-09-09
  • 详解如何在微信小程序开发中正确的使用vant ui组件

    详解如何在微信小程序开发中正确的使用vant ui组件

    这篇文章主要介绍了详解如何在微信小程序开发中正确的使用vant ui组件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 学习使用Bootstrap栅格系统

    学习使用Bootstrap栅格系统

    这篇文章主要教大家学习使用Bootstrap栅格系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • js中事件对象和事件委托的介绍

    js中事件对象和事件委托的介绍

    今天小编就为大家分享一篇关于js中事件对象和事件委托的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • JS中用EL表达式获取上下文参数值的方法

    JS中用EL表达式获取上下文参数值的方法

    下面小编就为大家分享一篇JS中用EL表达式获取上下文参数值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Typescript模块的导入导出与继承方式

    Typescript模块的导入导出与继承方式

    这篇文章主要介绍了Typescript模块的导入导出与继承方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • NestJs使用Mongoose对MongoDB操作的方法

    NestJs使用Mongoose对MongoDB操作的方法

    这篇文章主要介绍了NestJs使用Mongoose对MongoDB操作的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论