精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

配置化表單FormRender初嘗試

開發 前端
基于JSON schema 的協議規范。JSON schema 作為 JSON 數據校驗表述的國際標準,主要用于表單數據的服務端校驗。已經接入JSON Schema標準的團隊可以幾乎無縫接入 FR。

然而,我找到了一個非常好用的 表單 插件,就是通過下發JSON配置來生成表單視圖的方法!!!!

它就是 FormRender ,一站式中后臺 表單解決方案。

它有什么優點?

  • 支持 Ant Design 和 Fusion Design 主流的視覺主題
  • 使用JSON Schema 標準協議描述表單配置,并搭配豐富類型且可擴展的組件
  • 支持 1 排 N、支持對象無限嵌套、自定義正則校驗、自定義樣式組件、列表拖拽等特性
  • 已在飛豬、亞博科技、安全智能、淘寶、新零售行業工作臺、人工智能實驗室、天貓等多場景使用,可支持復雜場景使用
  • 維護上有專人支持

香不香?我反正已經上手使用過了,是真的香!遇到這種靈活多變的表單配置化需求,一個輸入框和select都甚至需要封裝成一個組件,寫完一個組件,就要在components增加一個文件夾,要是用了這個插件,一些基礎的組件可以直接用,要是不滿足你的需求的話,也可以自定義組件(有這種類似場景的同學看過來,福利啊)

再講一下這個插件的缺點

插件誕生也就兩三年,可能會有一些bug,這是難免的 文檔不是很全 待發現... 但我目前用下來是沒啥大問題的

那么大家就會問呢?

實際開發復雜度有多高?

能支持復雜場景么?能支持聯動么?

能支持多樣化的定制需求么?

當然答案都是肯定的,接下來帶大家體驗一下

設計方案

圖片

協議層定義協議(schema)配置,展示層控制協議的渲染,工具層提供上下游的進一步支持。在此之上,FR 遵循如下的 api 設計:

基于JSON schema 的協議規范。JSON schema 作為 JSON 數據校驗表述的國際標準,主要用于表單數據的服務端校驗。已經接入JSON Schema標準的團隊可以幾乎無縫接入 FR。

極簡的組件 api:

// 可控的input
<input value={value} notallow={onChange} />
// form-render, 只多了schema,用于描述 Form 長什么樣
<FormRender formData={value} notallow={onChange} schema={schema} />

這樣的設計下,FR 只負責管理和改動表單數據/時時校驗,而將具體如何使用表單數據和校驗信息乃至提交的方式全權交給了使用者自由書寫。

支持復雜聯動:

"showMore": {
"title": "顯示更多",
"type": "boolean"
},
"input1": {
"title": "輸入框1",
"type": "string",
"hidden": "{{rootValue.showMore === false}}" // 當showMore值為false時,隱藏
}

支持個性化擴展: 當出現現有表單元素無法滿足需求的場景,FR 使用自定義組件的方式,讓用戶自由擴展 FR 的組件庫。

備注:自定義組件就是普通的React組件,唯一的 要求是要有 value/onChange 這兩個 props,用于雙向綁定值。所以如果現成的組件已經默認使用了  value/onChange,就可以直接拿來用。

// 寫自定義組件
const MyInput = ({ value, onChange }) => {
return <input value={value} notallow={(e) => onChange(e.target.value)} />;
};
// 傳入自定義組件
<FormRender {...props} widgets={{ myInput: MyInput }} />;

協議上只需指明"widget": "MyInput",即可使用對應的組件來渲染:

text: {
title: "你好",
type: "string",
"widget": "myInput"
}

一句話總結,基于 JSON schema 的協議確保了 FR 的規范性,可控組件的模型確保了外層 api 的簡潔和解耦,聯動&自定義組件的 api 確保了對大量復雜的場景的很好支持。

下面我來談談小伙伴們最關心的實際使用體感吧。

使用體驗 & 流程

安裝:

FormRender 依賴 ant design,單獨使用不要忘記同時安裝 antd

npm i form-render --save

最簡demo

圖片

import React from 'react';
import { Button } from 'antd';
import FormRender, { useForm } from 'form-render';

const schema = {
type: 'object',
properties: {
input1: {
title: '簡單輸入框',
type: 'string',
required: true,
},
select1: {
title: '單選',
type: 'string',
enum: ['a', 'b', 'c'],
enumNames: ['早', '中', '晚'],
},
},
};

const Demo = () => {
const form = useForm();
const onFinish = (formData, errors) => {
console.log('formData:', formData, 'errors', errors);
};
return (
<div>
<FormRender form={form} schema={schema} notallow={onFinish} />
<Button type="primary" notallow={form.submit}>
提交
</Button>
</div>
);
};

export default Demo;

從 demo 中我們不難發現 FormRender 的一些設計:

  • 以 schema 來描述表單展示,提交方式與 antd v4 的方式類似。
  • schema 以國際標準的 JSON schema 為基礎,同時能夠方便使用任何 antd 的 props。
  • 通過bind字段,我們允許數據的雙向綁定,數據展示和真實提交的數據可以根據開發需求不同(例如從服務端接口拿到不規則數據時,也能直接使用)。
  • 使用{{...}}書寫表達式來完成簡單的聯動,值得一提的是,這里表達式支持所有 js 語法。FR 還提供自定義組件、dependencies 聲明、watch 等工具用于更加復雜的定制。
  • 可以通過displayType,labelWidth等字段輕易修改展示。

通過使用 schema 編輯器,生成一個表單的流程非常簡單,有興趣的同學可以按下面示例在線嘗試一下,體會它的強大性:

  • 使用 在線 schema 編輯器 搭建表單,導出 schema
  • 將 schema 作為props傳入<FormRender {...schema} />組件 在線(demo中替換 schema.json 文件內容即可)。

圖片

在原有的基礎組件支撐下,我們需要一個復雜聯動的自定義組件,如圖:

圖片

當時在封裝這個自定義組件時遇到的一個小坑:

圖片

如上圖標注,組件只掛載了一次,導致給自定義組件傳的recycleLinkCode,剛開始拿到的初始值是空,但是組件已經掛載完了,等到接口返回recycleLinkCode的值時,傳過去的數據沒有實時更新。

官方給出的理由是: formData的更新才會觸發表單的重新渲染,但是recycleLinkCode不是表單值,所以不能用form.setValues和form.setValueByPath來修改表單值

解決辦法:

接口拿到數據之后再去加載組件;

觸發組件重新渲染,可以試試這樣寫:useMemo(()=>,[recycleLinkCode])。

寫在最后

總體來說這個插件已經很 nice 了,可以滿足一般表單基本的需求。使用拖拽形式,也完全可以交給產品運營同學直接進行表單配置組合。

責任編輯:武曉燕 來源: 大轉轉FE
相關推薦

2017-02-21 15:00:06

Android

2023-02-20 13:56:22

2020-09-07 12:42:18

表單可視化開源

2021-02-01 10:20:29

Windows虛擬技術ISO文件

2009-12-09 10:41:19

配置靜態路由

2022-08-08 12:57:42

IoT智能設備智能化設備家庭組網

2014-10-24 08:58:21

初志科技云存儲

2009-01-27 09:53:00

2009-08-24 14:12:46

IT運維管理表單設計工具摩卡軟件

2009-02-05 18:56:36

虛擬化GartnerIDC

2013-03-20 10:00:36

AMD多元化發展中國市場

2014-09-25 19:30:51

2025-03-07 10:53:47

2014-11-25 10:03:05

初志科技云存儲

2010-09-02 16:34:13

SOAP協議

2009-07-16 16:01:54

WebWork敏捷開發

2012-01-10 09:56:32

WPF

2019-04-09 08:00:00

蘇寧發票中心系統

2013-01-29 10:33:39

云計算IT

2011-06-08 12:42:08

Android 藍牙
點贊
收藏

51CTO技術棧公眾號

亚洲国产一区在线观看| 日韩精选在线| 亚洲综合色自拍一区| 99精品国产一区二区| 麻豆一区二区三区精品视频| 美女一区2区| 欧美性色黄大片| 欧美交换配乱吟粗大25p| 午夜福利视频一区二区| 久久99深爱久久99精品| 欧美高跟鞋交xxxxxhd| 偷拍夫妻性生活| 麻豆精品在线| 色综合天天综合网天天看片| 99久久久国产精品| 国产精品黄色av| 国产一级片免费观看| 精品一区二区三区在线| 精品久久久久香蕉网| 国产免费人做人爱午夜视频| а√天堂8资源在线官网| av中文一区二区三区| 国产在线精品播放| 成人黄色在线免费观看| а中文在线天堂| 亚洲国产日韩欧美一区二区三区| 一区二区亚洲欧洲国产日韩| 亚洲色图欧美另类| 免费黄色在线网址| 欧洲亚洲精品视频| 国产成人免费在线观看| 国产精品美女主播| 天天干天天干天天操| 欧美私人啪啪vps| 在线视频欧美性高潮| av鲁丝一区鲁丝二区鲁丝三区| 欧美一区在线观看视频| 欧美猛男gaygay网站| 人妻丰满熟妇av无码区app| 123区在线| 一区二区三区波多野结衣在线观看| 亚洲乱码国产乱码精品天美传媒| 久久久久久久影视| 99久久精品国产一区二区三区 | 麻豆视频一区二区| 国产91色在线| 男人天堂av在线播放| 亚洲美女视频在线免费观看| 欧美激情手机在线视频| jizz亚洲少妇| 亚洲女同一区| 神马久久久久久| 女人扒开双腿让男人捅| 国产精品一区二区免费福利视频| 欧美性69xxxx肥| 国产精品一线二线三线| 国产嫩草在线视频| 成人短视频软件网站大全app| 亚洲综合色自拍一区| 亚洲色婷婷久久精品av蜜桃| av香蕉成人| 亚洲美女淫视频| 亚洲国产精品成人一区二区| 伊人影院综合在线| 国产亚洲人成a在线v网站| 欧美亚洲尤物久久| 羞羞的视频在线| 日韩欧美在线字幕| 亚洲精品免费一区二区三区| 真实的国产乱xxxx在线91| 久久综合狠狠| 国产精品极品美女粉嫩高清在线| 99视频在线播放| 毛片不卡一区二区| 欧美大片在线看| 久久综合激情网| 伊人久久大香线蕉av超碰演员| 欧美日本精品在线| 三级黄色在线观看| 久久中文字幕二区| 久久中文精品视频| 91在线网站视频| 黄色大全在线观看| 久久久精品午夜少妇| 97在线视频免费播放| 国产一级片播放| 国产h在线观看| 国产乱对白刺激视频不卡| 91久久久久久久久久久| 亚洲经典一区二区三区| 99久久久精品免费观看国产蜜| 欧美日韩在线不卡| 别急慢慢来1978如如2| 亚洲男男av| 亚洲成av人乱码色午夜| 一级黄色片大全| 亚洲av无码乱码国产麻豆| 国产精品自拍在线| 国产在线一区二区三区播放| 东热在线免费视频| 亚洲欧美另类久久久精品| 人人妻人人添人人爽欧美一区| 亚洲一二三四五六区| 亚洲欧美一区在线| 国产成人精品一区二区在线| 国产视频第一页| 久久综合色8888| 欧美最新大片在线看| 一区二区三区入口| 亚洲一区二区电影| 中文一区二区视频| 久久久久久久久久久久久久av| 日本在线视频网址| 亚洲无线码一区二区三区| 国产一级片黄色| 国产伦精品一区二区三区在线播放 | 婷婷激情小说网| 一区二区三区国产好| 亚洲欧洲国产一区| 久久黄色免费视频| 激情综合一区二区三区| 日韩欧美大片在线观看| 午夜精品久久99蜜桃的功能介绍| 欧美一级大胆视频| 精品人妻一区二区三区换脸明星| 久久综合色婷婷| 亚洲国产精品成人天堂| 日本高清不卡一区二区三区视频 | 日本天堂在线视频| 3d动漫一区二区三区| 国产精品视频999| 日韩中文在线视频| 精品成a人在线观看| 你懂的视频一区二区| 青青久草在线| 久久久久免费看黄a片app| 爱情岛论坛亚洲入口| 中文在线不卡视频| 欧美高清hd| 中文字幕美女视频| 国产精品无码一区二区桃花视频| 国产香蕉一区二区三区| 日本黄色a视频| 在线免费看av网站| 午夜天堂精品久久久久| 国产91在线播放精品91| 日韩中文字幕观看| 亚洲国产天堂久久综合| caopor在线| 天天做天天爱天天综合网| 91啪亚洲精品| 99精品国产福利在线观看免费 | 日本伊人精品一区二区三区观看方式| 婷婷精品在线观看| 精品国产鲁一鲁****| 91黄色在线| 日本中文字幕伦在线观看| 一区二区视频网站| 久久婷婷国产麻豆91天堂| 亚洲午夜在线视频| 久久三级福利| 狠狠色丁香婷综合久久| 亚洲欧美日本国产| 成人av地址| 欧美三级自拍| 日本大胆欧美| 国产精品99久久| 国自产拍偷拍福利精品免费一| 欧美精品午夜| 国产日韩欧美| 久色成人在线| 亚洲激情视频| 精品不卡视频| 日本不卡免费一区| 亚欧美无遮挡hd高清在线视频| 国产模特精品视频久久久久| 天堂久久午夜av| 亚洲另类色综合网站| 国产精品免费久久久| 后入内射无码人妻一区| 国产高清一区二区| 国产精品久久久久久久一区探花| 黄色片视频在线观看| 在线视频欧美区| 人妻在线日韩免费视频| 久久久亚洲一区| 亚洲最大色综合成人av| 欧美经典一区| 高清欧美一区二区三区| 无码精品视频一区二区三区 | 欧美人妇做爰xxxⅹ性高电影| 调教驯服丰满美艳麻麻在线视频| 久久99久国产精品黄毛片色诱| 亚洲自拍偷拍一区二区三区| 一区二区三区自拍视频| 97欧美精品一区二区三区| 欧美日韩影视| 欧美在线观看视频在线| 日韩精品一区二区三区丰满| 成熟老妇女视频| av在线播放网站| 884aa四虎影成人精品一区| 精品亚洲乱码一区二区| 99久久久国产精品免费蜜臀| 91看片在线免费观看| 韩日在线一区| 欧洲精品久久| 国产亚洲字幕| 国产成人精品亚洲精品| 国产91足控脚交在线观看| 亚洲午夜久久久影院| 99久久国产热无码精品免费| 欧美日韩亚洲天堂| 丝袜 亚洲 另类 欧美 重口| 久久久亚洲综合| 免费看三级黄色片| 精品亚洲成a人| 亚洲国产精品久久久久婷蜜芽| 久久久久国产精品| 日本一区二区三区www| 一区视频网站| 91精品久久久久久久久久入口 | 免费看成人午夜电影| 9色在线视频网站| 欧美成人女星排名| 日韩女同强女同hd| 樱花影视一区二区| 欧美日韩在线三区| 成年人视频观看| 婷婷激情综合| 麻豆视频成人| 超碰97成人| 亚洲一区二区三区成人在线视频精品| 中文字幕在线视频网站| 欧洲亚洲一区二区三区| 久久精品国产成人精品| 姝姝窝人体www聚色窝| 91精品国产福利| 一本久道久久综合无码中文| 欧美三电影在线| 国产无码精品久久久| 一区二区在线免费观看| 天天操夜夜操av| 中文字幕一区二区三区视频| 蜜乳av中文字幕| 91麻豆免费看| 国产精品麻豆入口| 国产99久久久国产精品潘金网站| 国产日韩一区二区在线| 中文亚洲字幕| 97超碰青青草| 噜噜噜在线观看免费视频日韩 | 在线看片欧美| wwwjizzjizzcom| 中文无码久久精品| 国产精品igao激情视频| 中文字幕一区二区三区欧美日韩| 在线视频不卡国产| 91久久久精品国产| 欧美三级午夜理伦三级老人| 欧美二区视频| 成人在线视频一区二区三区| 欧美涩涩视频| 久久久久久免费看| 国产精品乱看| 亚洲欧美在线精品| 九色综合国产一区二区三区| 欧美视频亚洲图片| 国产盗摄一区二区三区| 四虎成人免费视频| 国产精品一区二区视频| 无码一区二区精品| 91首页免费视频| 舐め犯し波多野结衣在线观看| 国产日韩欧美在线一区| 激情高潮到大叫狂喷水| 亚洲欧洲在线观看av| 欧美日韩在线视频免费播放| 亚洲午夜久久久久久久久久久| 国产精品第72页| 欧美性色视频在线| 中文字幕日日夜夜| 欧美久久久久久久久久| 蜜桃av中文字幕| 亚洲日韩中文字幕| 日本在线视频观看| 色综合天天综合网国产成人网| 婷婷电影在线观看| 成人黄色生活片| 成人18夜夜网深夜福利网| 欧美一级二级三级| 69堂成人精品视频免费| 日韩视频在线直播| 成人区精品一区二区| 国产精品美女久久久久久不卡| 亚洲欧洲精品一区| 欧美午夜不卡| 久久精品视频91| 国产乱子伦视频一区二区三区| 亚洲美女免费精品视频在线观看| 国产又爽又黄的视频| 色偷偷一区二区三区| 亚洲一级在线播放| 欧美成人三级在线| 国产黄在线看| 日韩中文有码在线视频| 性欧美freesex顶级少妇| 国产欧美亚洲视频| 给我免费播放日韩视频| 日韩久久精品一区二区三区| 欧美在线影院在线视频| 免费av不卡| 国内精品久久久久久中文字幕| 成人在线高清| 国产欧美日韩伦理| 成人看的视频| 91免费黄视频| 激情小说亚洲一区| 中文视频在线观看| 亚洲欧美日本韩国| 精品一区二区无码| 亚洲第一网站免费视频| 日本a级在线| 国产精品视频自拍| 欧美变态挠脚心| 日本一级淫片演员| 男男视频亚洲欧美| 小毛片在线观看| 一区二区三区国产豹纹内裤在线| 国产91av在线播放| 欧美精品一区二区在线播放| 男人在线资源站| 国产极品精品在线观看| 牛牛影视一区二区三区免费看| 在线视频亚洲自拍| 日韩精品电影在线观看| 白白色免费视频| 好吊成人免视频| 黄色aaa毛片| 欧美激情一区二区三区在线视频观看 | 国内一区在线| 欧美 日韩 国产 一区| 三上悠亚av一区二区三区| 国产三区在线成人av| 波多野结衣高清视频| 亚洲图中文字幕| 国产精品极品美女在线观看| 免费久久一级欧美特大黄| 免费看的黄色欧美网站| 波多野结衣a v在线| 欧美视频二区36p| 日本国产在线| 国产做受高潮69| 精品一区在线| 日韩欧美一区二区久久婷婷| 午夜影院免费体验区| 欧美第一淫aaasss性| 日韩08精品| 国产精品久久久久久久久电影网| 国产69精品一区二区亚洲孕妇| 九九热国产在线| 精品黑人一区二区三区久久 | 欧美三片在线视频观看| 最新中文字幕一区| 亚洲国产精品久久久久秋霞蜜臀 | 91麻豆国产福利精品| 国产情侣在线视频| 国产xxx69麻豆国语对白| 国产一级片视频| 欧美日韩国产一区二区三区| 亚洲美女性生活| 91国产在线精品| 日韩精品a在线观看91| 欧美激情videoshd| 久久免费少妇高潮99精品| 欧美午夜精品理论片a级按摩| 免费在线毛片| 美女999久久久精品视频| 五月天婷婷丁香网| 欧美二区视频| 久久午夜夜伦鲁鲁一区二区| 91麻豆精东视频| 一级黄色免费看| 色综合五月天导航| 日韩有码中文字幕在线| 久久久精品在线视频| 亚洲日韩欧美一区二区在线| 成人1区2区3区| 国产97色在线| 亚洲精品97| 三上悠亚 电影| 国产二区精品| av一区二区三区免费| 99综合精品| 久久嫩草捆绑紧缚| 久久久久久九九| 日韩理论片av| 日韩av影视大全| 婷婷六月综合网| 欧美r级在线|