为什么前端开发不能灵活些

2019-10-18 17:39:24 +08:00
 yidinghe

以上面的图为例,前端在展示表单的时候不是把每个元素写死,而是先加载一个类似下面这样的 JSON 元数据:

{
    "ui-type": "form",
    "ui-element-id": "sms-query-form",
    "form-submit-path": "./sms-service/query",
    "fields": [{
        "field-name": "手机号码:",
        "field-type": "text"
    }, {
        "field-name": "发送时间:",
        "field-type": "time-range"
    }, {
        "field-name": "短信类型:",
        "field-type": "combo",
        "items": [{
            "key": "",
            "value": "全部"
        }, {
            "key": "0",
            "value": "注册"
        }, {
            "key": "1",
            "value": "修改密码"
        }, {
            "key": "2",
            "value": "找回密码"
        }]
    }, {
        "field-name": "发送状态:",
        "field-type": "combo-lazy-loading",
        "loading-path": "./enums/sms-send-status"
    }, {
        "field-name": "所属区域:",
        "field-type": "combo-lazy-loading",
        "loading-path": "./enums/busi-area"
    }]
}

然后按照 JSON 中的内容去动态组装表单。这样做的好处是如果查询条件有变化,这个 JSON 可以让后端开发直接改就可以了。

类似的表格也可以啊,虽然说请求次数和渲染时间可能增加,但作为后台系统是可以接受的。

4879 次点击
所在节点    程序员
42 条回复
wym7223645
2019-10-18 17:46:25 +08:00
曾经考虑过这样设计,但是后来被个性化的 css 以及 js 校验给废了
berumotto
2019-10-18 17:49:03 +08:00
你都说了作为后台系统可以接受,那就按需求自己去做咯,这种小众需求跟前端灵活不灵活没关系
buhi
2019-10-18 17:49:28 +08:00
类似的轮子在前端娱乐圈已经有无数个了. 以至于我都不好意思在这里贴我做的这个轮子.
sardine
2019-10-18 17:50:29 +08:00
之前有过这样的功能,每次都要为产品的个性化设计适配,很痛苦
q8164305
2019-10-18 17:51:15 +08:00
这么简单,你可以做一个出来造福大众
luoway
2019-10-18 17:53:28 +08:00
自己做呗,这种程度用模版引擎随便撸
Curtion
2019-10-18 17:57:03 +08:00
存在样式怎么处理的问题,公司要求还原设计图
LiuJiang
2019-10-18 18:00:29 +08:00
还是在于和产品、后端约定,定下契约。
cheeto
2019-10-18 18:03:30 +08:00
这个实现起来也不是很难。。。
zihuyishi
2019-10-18 18:05:56 +08:00
为啥我感觉这个本质上和 html 其实没区别,尤其是好久以前的静态页面,只是 html 后来加了好多新东西越发展越强大。
learnshare
2019-10-18 18:06:00 +08:00
类似的东西有的,应该还不少,很多前端甚至都自己实现过
但 Web 是灵活的,UI 和逻辑多变,所以应用范围很有限
wangyzj
2019-10-18 18:13:57 +08:00
你这个想法会让所有前端人都成为你的敌人的
sivacohan
2019-10-18 18:16:00 +08:00
这种需求在 OA 或者 ERP 系统里面很常见。做一个简化版的差不多一周工作量就可以了。
Vue 和 React 都有对应的动态表单组建。

如果想要在“简单”的基础上增加可配置性,事情就变得复杂起来了。举个例子,当一个表单里,需要通过一个 select 的选择,同时变化几个 Field 的值,这该怎么配置呢?
reus
2019-10-18 18:19:03 +08:00
你自己做过就知道坑了
难道叫后端来调试样式啊?
你觉得灵活,是因为这个框架刚刚好符合你的要求
如果需求和你的框架不符合,你要么拆掉重建,要么就打补丁绕过,恶心死你!
areless
2019-10-18 18:48:29 +08:00
有很多 form builder~~~可是~哎~~~一言难尽。后端都代码生成器啊脚手架啊,前端就是调来调去的。没办法,眼睛能看到的东西,说不定甲方验货的内斜视呢,你说对不对
lufeng08
2019-10-18 18:53:20 +08:00
来,你瞅瞅,后端全是脚手架,前端半自动脚手架,做了这么多东西出来,结果,[苹果滞销帮帮我们.jpg]
https://www.gepardshop.com/appstore
shehuizhuyi
2019-10-18 18:57:58 +08:00
前端不是由后端渲染的吗
wc951
2019-10-18 19:05:17 +08:00
flowable 里有这种表单引擎
jinliming2
2019-10-18 19:17:51 +08:00
json 只是一个数据格式,是一个载体,你也可以存成 XML 不是?
既然可以存成 XML,那也就可以转成 XHTML 了,对不对?
那既然是 XHTML 了,就再简化成 HTML 不就好了?

等等,咱们要干啥来着?
66450146
2019-10-18 19:40:30 +08:00
React 了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/610741

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX