精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产女人18水真多18精品一级做| 爽成人777777婷婷| 欧美日韩国产精品一区二区不卡中文| 久久精品欧美| 国产精品成人久久久| 围产精品久久久久久久| 亚洲国产天堂网精品网站| 乱子伦视频在线看| av超碰免费在线| 91小视频免费看| 国产精品专区一| 国产无码精品一区二区| 超碰成人久久| 欧美成人激情免费网| 99久久激情视频| wwwav在线| 久久久久99精品国产片| 92国产精品久久久久首页 | 一道本在线免费视频| 在线中文免费视频| 久久久久久夜精品精品免费| 91在线免费看网站| 日韩精品在线一区二区三区| 欧美午夜电影在线观看 | 亚洲r级在线观看| 久久青青草视频| 成人区精品一区二区婷婷| 亚洲成人精品在线| 波多野结衣网页| 日本欧美一区| 都市激情亚洲色图| 免费网站永久免费观看| 久久bbxx| 国产欧美综合在线观看第十页| 国产精品美女黄网| 国产乱色精品成人免费视频| 日韩精品1区2区3区| 午夜精品一区二区三区在线播放| 成熟的女同志hd| 最新av网站在线观看| 免费在线成人激情电影| 亚洲成在人线免费| 日韩欧美视频免费在线观看| 在线观看免费黄视频| www欧美成人18+| 精品国产乱码久久久久| www.激情五月| 免播放器亚洲一区| 国产精品黄色av| youjizz在线视频| 99热免费精品在线观看| 久久99国产精品自在自在app| 成人做爰69片免网站| 网友自拍区视频精品| 337p日本欧洲亚洲大胆精品| 性生活在线视频| 国产日韩中文在线中文字幕| 91麻豆精品国产91久久久久久久久| www日韩视频| 456亚洲精品成人影院| 精品国产成人av| 亚洲熟妇无码一区二区三区| xxxx在线视频| 精品成人av一区| 婷婷无套内射影院| 超碰资源在线| 色婷婷综合久久| www日韩在线观看| 成人在线视频播放| 欧美日韩激情一区二区| 国产在线观看中文字幕| 欧美日韩黄色| 欧美精品一区二区三区四区| 国产网站无遮挡| 精品久久久久中文字幕小说| 在线电影av不卡网址| 成人信息集中地| 欧美精品91| 91精品国产91久久久久福利| 手机看片久久久| 秋霞av亚洲一区二区三| 国产综合香蕉五月婷在线| 国产伦精品一区二区三区四区 | 中文字幕有码av| 只有精品亚洲| 亚洲国产一区自拍| 高潮毛片无遮挡| 不卡一区2区| 久久九九全国免费精品观看| 久草网在线观看| 国产日韩一区二区三区在线| 国产精品福利在线观看网址| 国产毛片一区二区三区va在线 | av一本久道久久波多野结衣| 天天干天天做天天操| 国产午夜精品在线观看| av电影一区二区三区| av影院在线| 欧美在线你懂的| 国产清纯白嫩初高中在线观看性色| 五月天亚洲色图| 北条麻妃一区二区三区中文字幕| 国产精品第九页| 麻豆成人久久精品二区三区红| av成人观看| 精品视频二区| 一区二区三区在线观看网站| av动漫免费看| 白嫩亚洲一区二区三区| 亚洲精品网站在线播放gif| 97成人资源站| 首页综合国产亚洲丝袜| 99国产在线| 成年人在线观看视频| 卡一精品卡二卡三网站乱码| 亚洲天堂2016| 黄色成人在线看| 久久爱.com| 精品亚洲夜色av98在线观看| 中文字幕在线有码| 免费久久99精品国产| 精品国产第一页| www在线视频| 欧美在线一二三| 麻豆国产精品一区| 欧美日韩亚洲国产精品| 国产综合福利在线| avtt亚洲| 色久优优欧美色久优优| 黄色性视频网站| 中文视频一区| 国产一区二区色| www.黄在线观看| 日韩欧美亚洲成人| 污污免费在线观看| 亚洲色图插插| 成人久久久久爱| wwwxxx在线观看| 亚洲一二三四在线| 欧美熟妇另类久久久久久多毛| 精品国产一区二区三区四区| 97视频色精品| 999国产精品视频免费| 国产日韩三级在线| 六月激情综合网| 丝袜美腿综合| 5252色成人免费视频| 蜜桃视频久久一区免费观看入口| 亚洲女厕所小便bbb| 毛片毛片毛片毛| 国产高清欧美| 国产日韩在线看片| 免费在线观看av| 在线电影一区二区三区| 国产又粗又长免费视频| 美腿丝袜亚洲一区| 亚洲一区在线免费| 日韩综合av| 久久久电影免费观看完整版| 国产精品嫩草影院桃色| 综合激情成人伊人| 艹b视频在线观看| 欧美黄色录像片| 成人午夜黄色影院| 手机在线免费av| 精品av综合导航| 国产精品99精品| 成人黄色在线视频| 九九九九免费视频| 欧美日韩激情在线一区二区三区| 国产精品美女久久久免费| 中文日本在线观看| 日韩一区二区免费在线观看| 久久久久亚洲天堂| 91色.com| 杨幂毛片午夜性生毛片 | 成人免费毛片东京热| 国产精品综合二区| 欧美图片激情小说| 日韩av字幕| 日产精品久久久一区二区福利| 日韩大胆视频| 欧美日韩亚洲不卡| 欧美成人三级视频| av亚洲精华国产精华精华| av观看免费在线| 97色伦图片97综合影院| 国产精品美女xx| 性欧美hd调教| 免费av一区二区| 亚洲aaa在线观看| 精品视频全国免费看| 久草视频免费在线| 99re这里都是精品| 亚洲天堂网2018| 亚洲精品一级| 亚洲一区美女| 日韩一级电影| 91日韩在线视频| 丝袜老师在线| 久久福利视频导航| 久久精品国产亚洲a∨麻豆| 欧美日韩精品一区二区在线播放| 久久久精品人妻一区二区三区四| 26uuu另类欧美亚洲曰本| 老司机午夜性大片| 亚洲视频大全| 五月天在线免费视频| 亚洲精品国产动漫| 97久久夜色精品国产九色| 在线观看精品| 国内精品久久久久伊人av| 亚洲xxxxxx| 精品亚洲一区二区三区| 成人av一区二区三区在线观看| 色婷婷亚洲婷婷| av资源吧首页| 亚洲精品乱码久久久久久黑人| av黄色在线免费观看| 岛国一区二区三区| www.51色.com| 免费视频最近日韩| 欧美成人免费高清视频| 国产精品激情电影| 国产午夜精品理论片a级大结局| 国产免费视频传媒| 99精品视频网| 久久男人资源站| 久久精品久久久| 亚洲国产一区二区三区在线| 一区二区三区日本久久久| 99re视频在线播放| 四虎在线精品| 国产精品自产拍高潮在线观看| 夜鲁夜鲁夜鲁视频在线播放| 欧美激情国产日韩精品一区18| 免费在线看a| 精品国产网站地址| 99reav在线| 在线观看亚洲区| 国产三区四区在线观看| 亚洲人成电影网| 欧美少妇另类| 亚洲男女自偷自拍图片另类| 性感美女视频一二三| 亚洲国产日韩欧美在线动漫| 亚洲精品久久久久久久久久| 欧美一区二区久久| 国产婷婷在线视频| 日韩精品一区二区三区在线播放| 国产精品自产拍| 91精品在线观看入口| 91av久久久| 9191久久久久久久久久久| 一级日韩一级欧美| 7777精品伊人久久久大香线蕉| 一区二区三区免费在线| 51精品秘密在线观看| 国产三级自拍视频| 91麻豆精品国产91| www日本视频| 亚洲精品一线二线三线无人区| 亚洲成人77777| 亚洲国产欧美精品| 日韩av成人| 亚洲欧美综合精品久久成人| 国产在线视频资源| 色狠狠av一区二区三区香蕉蜜桃| 日本中文字幕视频在线| 成人444kkkk在线观看| 日韩另类在线| 88xx成人精品| 素人一区二区三区| 91夜夜未满十八勿入爽爽影院 | 制服视频三区第一页精品| a天堂在线视频| 亚洲精品在线免费播放| 精品999视频| 久久精品国产v日韩v亚洲| 在线中文免费视频| 日本高清不卡的在线| 免费一级欧美在线观看视频| 亚洲一区美女视频在线观看免费| 嗯用力啊快一点好舒服小柔久久| 国产精品日韩一区二区三区| 免费成人结看片| 只有这里有精品| 国产精品久久久亚洲一区| 美女网站视频黄色| 国产成人在线视频网站| 国产亚洲无码精品| 国产精品久99| 日本一区二区网站| 欧美特级限制片免费在线观看| 99在线精品视频免费观看软件| 亚洲黄在线观看| 毛片在线播放a| 91chinesevideo永久地址| 亚洲精品毛片| 国产另类第一区| 91免费精品| 男人添女人下面高潮视频| 麻豆国产精品视频| 波多野结衣办公室33分钟| 亚洲色欲色欲www在线观看| 日韩成人免费在线观看| 欧美色国产精品| 人妻无码一区二区三区久久99| 亚洲最新在线视频| 国产美女福利在线观看| 国产精品一区久久久| 岛国成人av| 精品一区二区成人免费视频 | 欧美日韩亚洲一| 国内精品在线播放| 中文字幕国产专区| 亚洲一二三四久久| 97人妻精品一区二区三区软件| 国产婷婷色综合av蜜臀av| 性欧美ⅴideo另类hd| 国产精品爱啪在线线免费观看 | 你懂的网址一区二区三区| 欧美午夜影院| 欧美一级xxxx| 国产日韩高清在线| 黄色片免费观看视频| 日韩欧美在线1卡| 欧洲日本在线| 国产精品国产福利国产秒拍 | 欧美日韩免费看片| 国产伦视频一区二区三区| 一本一道久久a久久精品蜜桃| 国产免费999| 久久久五月婷婷| 久久久久久久久久影院| 欧美变态tickle挠乳网站| av理论在线观看| 亚洲va久久久噜噜噜| 97精品视频在线看| 国产色视频在线播放| 欧美精彩视频一区二区三区| 日日骚av一区二区| 亚洲精品一区在线观看香蕉| 美女搞黄视频在线观看| 国产一区二区三区高清| 亚洲激情另类| 国产白袜脚足j棉袜在线观看| 亚洲综合在线观看视频| www.久久伊人| 欧美精品www| 九九热播视频在线精品6| 国产一区二区网| 不卡一区中文字幕| 国产免费av一区二区| 日韩成人高清在线| 综合另类专区| 区一区二区三区中文字幕| 久久一日本道色综合久久| 免费在线观看污| 欧美无人高清视频在线观看| 成年人在线视频| 亚洲澳门在线| 午夜精品久久久久久久白皮肤| 超碰一区二区| 日产国产精品精品a∨| 青草国产精品久久久久久| 美女av免费看| 欧美一卡2卡3卡4卡| 亚洲91av| 精品一区二区三区自拍图片区 | 久久国产精品偷| 日本一区精品视频| www.国产在线播放| 91麻豆产精品久久久久久| 国产黄色免费视频| 久久偷看各类女兵18女厕嘘嘘 | 久热国产精品视频一区二区三区| 免费在线成人| 成人无码av片在线观看| 在线播放欧美女士性生活| 久久五月精品中文字幕| 欧美日韩精品不卡| 老色鬼精品视频在线观看播放| 欧美亚洲日本在线| 亚洲国产日韩欧美在线99| 日本一区免费网站| avove在线观看| 91伊人久久大香线蕉| 91国内精品视频| 午夜免费日韩视频| 欧美日韩伦理| 一二三区视频在线观看| 欧美性色视频在线| 国产视频在线播放| 久久精品第九区免费观看| 老司机免费视频一区二区三区| 日韩欧美激情视频| 少妇av一区二区三区| 国产成人福利av| www.99r|