现代的网页前端技术,基本都是以开发 Web 组件为基础的。写了很多个组件后,就会自然而然想把页面抽象出来。amis 和 lowdefy 就是这类技术,把 Recat 一个组件的状态,事件都对应成 JSON 里一个子节点。
然后为每一个节点添加 JSON Schema Definition,建立节点规范。最后像搭积木一样,把一整套网页搭建起来。
以前也有这种页面的简单抽象,一般都是用于提交表单的配置。可现在随着 MVVM 理念的发展,UI 已经可以和 JSON 内部的数据进行互动了。也就是 JSON 逐渐脱离传统意义的"配置文件",变成了类似虚拟 DOM,数值会和界面产生联动的状态树。
百度开源的主项目地址: https://baidu.gitee.io/amis
1
3dwelcome OP 没人对这种技术有兴趣?
我总觉得裸写 HTML 标签时代已经过去了。新 Web 组件的时代,需要有人站出来,建立一个新的标签规范标准( Schema Definition )。 否则人人都来写一套属于自己的组件库,定义的属性名字,又相互不兼容,内耗太严重。 |
2
512357301 2021-08-02 20:38:31 +08:00 via Android
个人看法:这种低代码开发方式跟之前 jq 时代的 easyui 有相同的问题——框架本身就很复杂,甚至比自己手写组件还复杂。
有开发能力的觉得束手束脚不想用,没开发能力的学了半天,哪天发现 amis 项目被百度放弃了,导致不敢用。 |
3
3dwelcome OP @512357301 还是有点不一样的,以前低代码不开源,都是界面拖拉式,对资深码农并不友好。
现在低代码又开源,又是纯文本构建,和我们平时用 vscode 写没什么区别了。 这种 JSON 理念值得提倡,代码早晚会过期,配置文件却不会。 |
4
jjwjiang 2021-08-03 08:48:15 +08:00
我没看出来和常见框架,比如 react 引一个 ui 库的实际区别
以不用定制化的场景为例 写一个 json 树和写一个引用 ui 库组件的 html 树会有很大差别吗? |
5
3dwelcome OP @jjwjiang 肯定有差别,一般人总会接手到前人的项目和代码,而每个人的项目技术栈又不同。
如果用的技术很老旧,想要维护好还是挺麻烦的一件事。 但如果是 json 树写的,老板说要修改别人的界面,就是一件很轻松的事情了。可以说 JSON 是对前端的一种最高层抽象,无关具体实现细节。 |
6
bsulike 2021-08-03 09:51:14 +08:00 1
介于本人前端水平太菜,所以最近用 amis 体验还是不错的。(后台管理
|
7
jjwjiang 2021-08-03 10:31:44 +08:00
@3dwelcome 不啊,你这前提是有点问题的
这个是 json 技术没错,但是你做的时候不也得翻文档看接口吗?比如设置什么 type label actiontype etc. 如果接手的人没接触过 amis,不还是得去翻文档学习吗? 如果是以 react 为例,拿一个 UI 框架搭个 app 不做定制化也很简单,修改也是照着文档改 component 的参数不是吗?这和改 JSON 参数有本质区别吗? 我明白你的愿景,但是那可能得出台一套新的标准 |
8
3dwelcome OP @jjwjiang 前端技术是在不断迅猛发展的,以隔壁的帖子举例( http://roscidus.com/blog/cuekeeper/),用的是一种听都没听说过的 OCaml 语言,编译成 JS 来运行的。
真拉个人来修改源代码,只能两眼一黑。 前端工程化和碎片化只会越来越严重,但再怎么变,界面定义这层,还是有办法抽离出来的,变成 JSON 树的。 这里说的 JSON 是一种界面编程的抽象理念,不仅仅是针对 AMIS 这一个特定产品,类似 lowdefy 的 YAML 树抽象,都将是未来的必经之路,绕不过去的。 |