您好,登錄后才能下訂單哦!
需求前景
前端組件是可復(fù)用的,那么復(fù)用前端組件時(shí)從后端讀取的數(shù)據(jù)源同樣也需要可復(fù)用(后端api也要是配置化的方式進(jìn)行),前端需要提供配置項(xiàng)給后端進(jìn)行動態(tài)配置生成api。
具體實(shí)現(xiàn)流程
名詞解析
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è)
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í)有所幫助,也希望大家多多支持億速云。
免責(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)容。