成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于 React 打造更好用的聚合表單

Heier / 2464人閱讀

摘要:前言管理后臺應(yīng)用有兩個最主要的功能數(shù)據(jù)錄入表單數(shù)據(jù)展示表格業(yè)務(wù)系統(tǒng)必不可少的功能模塊,并且占據(jù)開發(fā)量的以上。所以我認為將業(yè)務(wù)與徹底分離,會是更好的選擇。參考聚合表單源碼聚合表單管理后臺

前言

管理后臺應(yīng)用有兩個最主要的功能:

數(shù)據(jù)錄入 ---- 表單 (Form)

數(shù)據(jù)展示 ---- 表格 (Table)

業(yè)務(wù)系統(tǒng)必不可少的功能模塊,并且占據(jù)開發(fā)量的 80% 以上。

如何可以快速的,高質(zhì)量完成對應(yīng)的業(yè)務(wù)需求呢?

業(yè)務(wù)與 UI 徹底分離

術(shù)業(yè)有專攻,專注才能把事情做完美,減少出錯的概率。所以我認為將業(yè)務(wù)與 UI 徹底分離,會是更好的選擇。

例如我們實現(xiàn)以下表單:

一般的做法是,由開發(fā)引用 UI 庫對應(yīng)組件然后渲染:

import { Form, Input, Selector } from "ui"

const Page = () => {
  return (
    
// ... ) }

這樣問題不大,但是如果我們寫的頁面開始多了,維護起來就很麻煩了,如果由 20 個頁面,其中某個功能需要調(diào)整,需要改 20 遍,組件化并不能改變代碼維護的問題。

所以 ukelli-ui 打造了 聚合表單 的組件,只需要描述業(yè)務(wù)行為,完全與 UI 分離:

完整定義請參考

import FormLayout, { FormLayoutProps } from "ukelli-ui/core/form-generator/form-layout"

const formOptions: FormLayoutProps["formOptions"] = [
  "日期",
  {
    refs: ["startDate", "endDate"],
    type: "datetimeRange",
    enableTime: true,
    title: "日期1",
    tips: "123",
    defaultValue: []
  },
  {
    refs: ["startDate2", "endDate2"],
    type: "datetimeRange",
    title: "日期2",
    tips: "123",
    defaultValue: []
  },
  "選擇器",
  ...
];

ReactDOM.render(
   {
      // handleChange
    }} />,
  document.querySelector("#root")
)

干凈利落,沒有 UI 信息,專注于業(yè)務(wù)描述,UI 就交給 FormLayout 聚合表單統(tǒng)一處理,最后組件會返回一個統(tǒng)一數(shù)據(jù)結(jié)構(gòu)的 values,方便快捷。

這里可以體驗聚合表單

https://ui.ukelli.com/FormGen...

https://admin.ukelli.com/

Account: admin

Password: 123

當然還可以用 HOC 做更進一步的封裝,關(guān)于 HOC 部分會在其他篇幅講解。

參考

Form聚合表單源碼

Form聚合表單 demo

uke 管理后臺

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106482.html

相關(guān)文章

  • 精讀《怎么用 React Hooks 造輪子》

    摘要:可以看到,這樣不僅沒有占用組件自己的,也不需要手寫回調(diào)函數(shù)進行處理,這些處理都壓縮成了一行。效果通過拿到周期才執(zhí)行的回調(diào)函數(shù)。實現(xiàn)等價于的回調(diào)僅執(zhí)行一次時,因此直接把回調(diào)函數(shù)拋出來即可。 1 引言 上周的 精讀《React Hooks》 已經(jīng)實現(xiàn)了對 React Hooks 的基本認知,也許你也看了 React Hooks 基本實現(xiàn)剖析(就是數(shù)組),但理解實現(xiàn)原理就可以用好了嗎?學(xué)的是...

    Shihira 評論0 收藏0
  • 架構(gòu)師之路

    摘要:因為用戶不用在第一次進入應(yīng)用時下載所有代碼,用戶能更快的看到頁面并與之交互。譯高階函數(shù)利用和來編寫更易維護的代碼高階函數(shù)可以幫助你增強你的,讓你的代碼更具有聲明性。知道什么時候和怎樣使用高階函數(shù)是至關(guān)重要的。 Vue 折騰記 - (10) 給axios做個挺靠譜的封裝(報錯,鑒權(quán),跳轉(zhuǎn),攔截,提示) 稍微改改都能直接拿來用~~~喲吼吼,喲吼吼..... 如何無痛降低 if else 面...

    NikoManiac 評論0 收藏0
  • vue和react的差異

    摘要:而中實現(xiàn)原理是利用高階函數(shù)通過將多個函數(shù)組合成一個可執(zhí)行執(zhí)行函數(shù)關(guān)鍵步驟代碼如下所示。和都是基于更新差異元素。 引言 平時開發(fā)單頁項目應(yīng)用基于vue,目前另外兩個比較熱的庫還有angular和react,angular 1系列用過,進入公司后由于基于vue技術(shù)棧就沒在關(guān)注了。一直在關(guān)注react,目的不是學(xué)習(xí)用法,只是為了拓展自己的視野和思維,通過了解一些使用上的差異性,來進一步的思考...

    OnlyLing 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<