基于 JSON 纯文本配置的状态树,会是网页前端开发的未来吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3dwelcome
V2EX    前端开发

基于 JSON 纯文本配置的状态树,会是网页前端开发的未来吗?

  •  
  •   3dwelcome 2021-08-02 15:41:51 +08:00 2075 次点击
    这是一个创建于 1609 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现代的网页前端技术,基本都是以开发 Web 组件为基础的。写了很多个组件后,就会自然而然想把页面抽象出来。amis 和 lowdefy 就是这类技术,把 Recat 一个组件的状态,事件都对应成 JSON 里一个子节点。

    然后为每一个节点添加 JSON Schema Definition,建立节点规范。最后像搭积木一样,把一整套网页搭建起来。

    以前也有这页面的简单抽象,一般都是用于提交表单的配置。可现在随着 MVVM 理念的发展,UI 已经可以和 JSON 内部的数据进行互动了。也就是 JSON 逐渐脱离传统意义的"配置文件",变成了类似虚拟 DOM,数值会和界面产生联动的状态树。

    百度开源的主项目地址: https://baidu.gitee.io/amis

    8 条回复    2021-08-03 11:14:56 +08:00
    3dwelcome
        1
    3dwelcome  
    OP
       2021-08-02 16:34:47 +08:00
    没人对这种技术有兴趣?

    我总觉得裸写 HTML 标签时代已经过去了。新 Web 组件的时代,需要有人站出来,建立一个新的标签规范标准( Schema Definition )。

    否则人人都来写一套属于自己的组件库,定义的属性名字,又相互不兼容,内耗太严重。
    512357301
        2
    512357301  
       2021-08-02 20:38:31 +08:00 via Android
    个人看法:这种低代码开发方式跟之前 jq 时代的 easyui 有相同的问题框架本身就很复杂,甚至比自己手写组件还复杂。
    有开发能力的觉得束手束脚不想用,没开发能力的学了半天,哪天发现 amis 项目被百度放弃了,导致不敢用。
    3dwelcome
        3
    3dwelcome  
    OP
       2021-08-02 20:56:59 +08:00 via Android
    @512357301 还是有点不一样的,以前低代码不开源,都是界面拖拉式,对资深码农并不友好。
    现在低代码又开源,又是纯文本构建,和我们平时用 vscode 写没什么区别了。
    这种 JSON 理念值得提倡,代码早晚会过期,配置文件却不会。
    jjwjiang
        4
    jjwjiang  
       2021-08-03 08:48:15 +08:00
    我没看出来和常见框架,比如 react 引一个 ui 库的实际区别
    以不用定制化的场景为例
    写一个 json 树和写一个引用 ui 库组件的 html 树会有很大差别吗?
    3dwelcome
        5
    3dwelcome  
    OP
       2021-08-03 09:35:15 +08:00
    @jjwjiang 肯定有差别,一般人总会接手到前人的项目和代码,而每个人的项目技术栈又不同。

    如果用的技术很老旧,想要维护好还是挺麻烦的一件事。

    但如果是 json 树写的,老板说要修改别人的界面,就是一件很轻松的事情了。可以说 JSON 是对前端的一种最高层抽象,无关具体实现细节。
    bsulike
        6
    bsulike  
       2021-08-03 09:51:14 +08:00   1
    介于本人前端水平太菜,所以最近用 amis 体验还是不错的。(后台管理
    jjwjiang
        7
    jjwjiang  
       2021-08-03 10:31:44 +08:00
    @3dwelcome 不啊,你这前提是有点问题的
    这个是 json 技术没错,但是你做的时候不也得翻文档看接口吗?比如设置什么 type label actiontype etc.

    如果接手的人没接触过 amis,不还是得去翻文档学习吗?

    如果是以 react 为例,拿一个 UI 框架搭个 app 不做定制化也很简单,修改也是照着文档改 component 的参数不是吗?这和改 JSON 参数有本质区别吗?

    我明白你的愿景,但是那可能得出台一套新的标准
    3dwelcome
        8
    3dwelcome  
    OP
       2021-08-03 11:14:56 +08:00
    @jjwjiang 前端技术是在不断迅猛发展的,以隔壁的帖子举例( http://roscidus.com/blog/cuekeeper/),用的是一种听都没听说过的 OCaml 语言,编译成 JS 来运行的。

    真拉个人来修改源代码,只能两眼一黑。

    前端工程化和碎片化只会越来越严重,但再怎么变,界面定义这层,还是有办法抽离出来的,变成 JSON 树的。

    这里说的 JSON 是一种界面编程的抽象理念,不仅仅是针对 AMIS 这一个特定产品,类似 lowdefy 的 YAML 树抽象,都将是未来的必经之路,绕不过去的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     817 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:18 PVG 04:18 LAX 12:18 JFK 15:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86