V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3dwelcome
V2EX  ›  前端开发

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

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

    现代的网页前端技术,基本都是以开发 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   ·   我们的愿景   ·   实用小工具   ·   3270 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:16 · PVG 21:16 · LAX 06:16 · JFK 09:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.