快 2021 年了, UI 库为什么还要依赖框架?

2020-12-04 17:24:10 +08:00
 gzf6

好多优秀的 UI 库都要依赖框架,即使支持多框架的库,更新进度也不一致,有些甚至相差 1 、2 年,非常可惜。

但是像 Ionic 那样使用 web component 技术的库,基本上框架无关,代码复用率高,一致性好。但是这类库很少见,是技术上有什么顾虑?还是说纯粹的人手不足?如果公司自建 UI 库使用 web component 的话有哪些暗坑么?

7992 次点击
所在节点    程序员
43 条回复
shyling
2020-12-04 19:25:17 +08:00
我觉得这个问题有点像 快 2021 年了,怎么还有那么多优秀的库依赖 java,依赖 c++。。wc 只是还没流行起来,流行起来也会有基于 wc 的不同框架… 另外 ui 库也是框架呀
gzf6
2020-12-04 19:39:56 +08:00
@shyling 哦,你可能误解了,我不是说开发上的依赖,是使用上的依赖。开发随便用什么都可以,但是使用时的环境就只能依赖于一个框架就有点可惜。比如你用 java 开发了一个通用程序,结果 build 出的东西只能让它在 Windows 上跑,不会很可惜吗?(大概就这个意思)。至于 ui 的话,我还是觉得只是整体框架的一个表现层而已,尽量和业务层 、服务层、数据层分离,可能对框架的理解不太一样吧。
love
2020-12-04 20:57:57 +08:00
因为纯 JS 非常不适合开发应用,必须要框架。
要开发框架无关 UI 当然是可以的,比如 Google 官方出品的 Material UI For Web: https://github.com/material-components/material-components-web 然而。。。基本可以算是失败的。因为不用框架组件机制带来的问题太多了(之前 Google 还有一个官方 React 桥接绑定到这个库,后来停更了,为啥用过的人都清楚,我也是用过的,问题太多一言难尽,运行效率也比用纯 React 框架的差太多)
zy445566
2020-12-04 21:14:42 +08:00
https://github.com/zy445566/before-server
我这个就是用没有框架依赖 bootstrap 的部分 UI 。然后自己搭的 WebComponents 框架写的
zy445566
2020-12-04 21:19:57 +08:00
按我自己的体验来说用 WebComponents 打个框架真的很方便,用不了 100 行。但这 100 行却能为每一次 UV 节约 1MB 以上的流量,真的是值得的。现在很多人觉得框架很难实现,我觉得是被固有观念拖垮了。
user8341
2020-12-04 22:36:19 +08:00
@love
web component 不是已经写进 w3c 的标准了吗?为什么标准的反而更慢,框架的反而快?
karott7
2020-12-04 22:58:27 +08:00
在推上看到老外发了一句 2020 年了,打包工具还把代码编译成 es5 ……
Zchary
2020-12-04 23:04:00 +08:00
公司的话可能因为技术累债导致推进慢,这种活可能是吃力不讨好的,没多少人愿意去推行
loading
2020-12-04 23:15:52 +08:00
楼主,你试一下搜 css ui framework 。
wanguorui123
2020-12-04 23:35:57 +08:00
现在前端框架流行的原因主要是:组件的状态管理,UI 组件只是其中的一部分;
状态管理通俗的讲就是管理页面 /组件之间的通讯与上下文状态,单纯的 WebComponents 没有状态管理这个机制。
murmur
2020-12-04 23:37:04 +08:00
ionic 挺好的,人家现在不限制框架,甚至还接起了维护 cordova 的大旗,就是这个公司有点傲,我们国内小公司想买他的服务都不理我们

楼主就给人家一顿鄙视
lxml
2020-12-05 00:01:29 +08:00
@karott7 我也想吐槽……尤其是 typescript 默认就是 es5
love
2020-12-05 07:23:38 +08:00
@user8341 web components 我没用过不熟,不知道他的状态改变 UI 更新是什么样的,react 是很容易做到状态改变了,只更新必须的部分 dom,而在 react 出现之前,复杂组建状态改变了很难精细的去改变对应的 dom,那样工作量太大了,都是直接全量更新 dom,更新 dom 的成本是很大的
GrapeCityChina
2020-12-05 09:48:02 +08:00
这里有一款前端 UI 组件库(商用),不依赖任何框架:WijmoJS ( https://www.grapecity.com.cn/developer/wijmojs )。

WijmoJS 是一款基于 HTML5 的前端开发工具包,由 80 多种灵活、高效、跨平台、零依赖的 JavaScript UI 组件构成,如表格( Grid )、图表( Chart )、数据分析( Olap )、导航( Navigation )和金融图表等,完美兼容原生 JavaScript,以及 Angular 、React 、Vue 、TypeScript 、Knockout 和 Ionic 等框架,可助力企业以最快的速度开发并构建出一套成熟的 Web 应用程序。

WijmoJS 自面市以来,已先后在微软 Dynamics 项目、思科、特斯拉、富士通等知名企业中得以成功应用,凭借其先进的体系架构、超过 500 种示例源码、顶级的控件性能、原生触控支持,以及轻松、易用的操作体验,可全面满足企业开发所需,是最适合构建企业级 Web 应用的前端开发工具。
OHyn
2020-12-05 12:08:05 +08:00
@lxml 哎,老设备让人头痛。
gzg1023
2020-12-05 15:09:08 +08:00
懂楼主的意思,element-ui 这种应该是都是机遇自己公司懂产品,就没做跨端吧。
可以看看这个 https://github.com/primefaces 老哥,把 vue,react,ng 都自己做了一遍
qwer666df
2020-12-05 15:58:33 +08:00
@gzg1023 #36 让我想起来了 mingeJs
phithon
2020-12-05 16:44:54 +08:00
可以找有 jquery 版本的 ui 库,我是这样的
haozes
2020-12-05 17:18:47 +08:00
我特么也奇怪,前端不是造轮子快么,WC 的库怎么没蓬勃
Sapp
2020-12-05 18:19:48 +08:00
@phithon jquery 本身就是依赖了。

ui 库确实可以不依赖框架,但是这并不是很有意义的事情,ui 库本身不是一个难度特别高的东西,它是一个比较通用的东西,你在 vue 找到的,react 基本也有,如果开发者要不依赖框架,很多东西就要手写 js,这肯定会造成开发成本上升。而目前的 ui 库大多数都是公司内部转化而来的,他当然基于内部的框架优先,在开发速度和适用性做这个平衡。如果是专业的库提供商开发付费版本的,我想可能会支持多框架,但是目前感觉不太行的通。不过 Svelte 这两年逐渐有点发展了,未来可能有基于他做的组件,那就自然是通用了。

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

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

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

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

© 2021 V2EX