溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

基于ts的動態(tài)接口數(shù)據(jù)配置的詳解

發(fā)布時(shí)間:2020-09-11 02:46:13 來源:腳本之家 閱讀:575 作者:虛光 欄目:web開發(fā)

需求前景

前端組件是可復(fù)用的,那么復(fù)用前端組件時(shí)從后端讀取的數(shù)據(jù)源同樣也需要可復(fù)用(后端api也要是配置化的方式進(jìn)行),前端需要提供配置項(xiàng)給后端進(jìn)行動態(tài)配置生成api。

具體實(shí)現(xiàn)流程

基于ts的動態(tài)接口數(shù)據(jù)配置的詳解

名詞解析

mock 規(guī)范約束

使用的ts的 interface 進(jìn)行編譯前校驗(yàn),所有的組件接收的 mock 結(jié)構(gòu),都必須是該 Interface 的實(shí)現(xiàn)

解析器

將mock打平成 key,value 結(jié)構(gòu)的工具
eg.

interface I_EchartOption {
 series: {
   data: {
    name: string;
    value: numberOrString;
    unit?: string;
   }[];
 name?: string;
 type: "pie";
}; // 數(shù)據(jù)集配置
}
const mock:I_EchartOption = {
 series: [
  {
   type: "pie",
   data: [
    {
     name: "中藥",
     value: "2630",
     unit: "家",
     _viewData:{ // 通過組合的自定義屬性
       
     }
    },
   ]
  }
 ]
}
const parsingMock=(mock:I_EchartOption):T_formInfo=>{}
parsingMock(mock)
// 返回一個(gè) Mock 描述,見下文

mock 描述

mock 描述,功能有兩個(gè)

  1. 逆向生成 mock
  2. 接收后端傳遞的 build_option.options,渲染控制表單。
type T_formInfo = { // mock 描述的接口
 key: string, // 值得路徑嵌套
 value: string, // 解析出來的value
 build_component: string, // 承載改配置項(xiàng)的表單組件
 build_option: { // 傳遞給表單組件的參數(shù)
  options: any[], // 通過請求后端,讓后端進(jìn)行填充
  [key: string]: any
 },
}
[
    {
      "key": "series.0.data",
      "build_component": "seriesData",
      "build_option": {
        "options":[]
        "dataLength": 1
      },
      "formValue": "",
    },
    {
      "key": "series.0.data.0._viewData",
      "build_label": "副指標(biāo)series.0.data.0._viewData",
      "build_component": "viewData",
      "build_option": {
        "options":[]
        "isShowTitle": false,
        "_viewDataMaxLength": 1
      },
    },
    {
      "key": "series.0.type",
      "value": "pie"
    }
  ]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI