基于ts的動(dòng)態(tài)接口數(shù)據(jù)配置的詳解
需求前景
前端組件是可復(fù)用的,那么復(fù)用前端組件時(shí)從后端讀取的數(shù)據(jù)源同樣也需要可復(fù)用(后端api也要是配置化的方式進(jìn)行),前端需要提供配置項(xiàng)給后端進(jìn)行動(dòng)態(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:{ // 通過(guò)組合的自定義屬性 } }, ] } ] } const parsingMock=(mock:I_EchartOption):T_formInfo=>{} parsingMock(mock) // 返回一個(gè) Mock 描述,見(jiàn)下文
mock 描述
mock 描述,功能有兩個(gè)
- 逆向生成 mock
- 接收后端傳遞的 build_option.options,渲染控制表單。
type T_formInfo = { // mock 描述的接口 key: string, // 值得路徑嵌套 value: string, // 解析出來(lái)的value build_component: string, // 承載改配置項(xiàng)的表單組件 build_option: { // 傳遞給表單組件的參數(shù) options: any[], // 通過(guò)請(qǐng)求后端,讓后端進(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" } ]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript基于AJAX回調(diào)函數(shù)傳遞參數(shù)實(shí)例分析
這篇文章主要介紹了Javascript基于AJAX回調(diào)函數(shù)傳遞參數(shù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了JavaScript使用ajax傳遞參數(shù)的相關(guān)技巧以及回調(diào)函數(shù)的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12微信小程序template模板引入的問(wèn)題小結(jié)
這篇文章主要介紹了微信小程序template模板引入的問(wèn)題小結(jié),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07javascript 折半查找字符在數(shù)組中的位置(有序列表)
折半查找字符在數(shù)組中的位置(有序列表),需要的朋友可以參考下。2010-12-12Javascript頁(yè)面跳轉(zhuǎn)常見(jiàn)實(shí)現(xiàn)方式匯總
這篇文章主要介紹了Javascript頁(yè)面跳轉(zhuǎn)常見(jiàn)實(shí)現(xiàn)方式,結(jié)合實(shí)例匯總分析了JavaScript常用的七種頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11json數(shù)據(jù)與字符串的相互轉(zhuǎn)化示例
json與字符串之間的轉(zhuǎn)換,在使用中經(jīng)常會(huì)遇到,本文有個(gè)不錯(cuò)的示例,大家可以參考下,或許會(huì)有所幫助2013-09-09JavaScript 繼承 封裝 多態(tài)實(shí)現(xiàn)及原理詳解
這篇文章主要介紹了JavaScript 繼承 封裝 多態(tài)實(shí)現(xiàn)及原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07