最近前端又新出了一款框架 vanillajs,当你打开他的官网时会发现大小是 0kb,因为他其实就是让你用原生 JS 写代码,至于他为什么能引起关注,这就涉及到前端的生态了;

2020-12-29 09:36:28 +08:00
 mascteen

npm 拥有所有语言中最多的包;每隔两周打开 hackernews 就会有一个新的框架出来; JS 每隔一年语法就让人不认识了;前端众多的框架不知道从何下手,很多框架是有功能上的重叠的和学习成本的;

而 vanillajs 框架就是推荐你用原生,框架里面没有任何代码只有一行注释。而 JS 通过多年的进化也已经成为了功能强大的语言了,确实也没必要在其上再覆盖一层框架和学习成本去完成项目。

框架的使用反而会增加项目的维护难度,原生提供更好代码体验,甚者如果你一定要使用框架,原生对所有框架更友好。

10299 次点击
所在节点    JavaScript
63 条回复
nthhdy
2020-12-29 09:58:26 +08:00
这框架是搞笑的吗
gzf6
2020-12-29 10:05:12 +08:00
框架更多的是约束代码组织结构吧,用原生的写,最后也会形成自己的一套框架
waiaan
2020-12-29 10:06:15 +08:00
不仔细看还真以为是框架了
vision1900
2020-12-29 10:11:23 +08:00
同意,Vue 和 React 最多再流行 5 年。等到新的 HTML 标准以及 Web Components 普及, 原生会重新夺回它的地位
cslive
2020-12-29 10:15:11 +08:00
3g 网速是真的快
bnm965321
2020-12-29 10:15:42 +08:00
很多组件如果不用框架我写不出来。。
shintendo
2020-12-29 10:17:31 +08:00
JS 每隔一年语法就让人不认识了
-------------
楼主能举个例子吗?一个就行。
newbieRenew
2020-12-29 10:24:33 +08:00
不用框架?完成同样的项目,你的工作时间大概需要增加 N 倍。
libook
2020-12-29 10:34:19 +08:00
原生 JS 现在确实很强大了,手撸页面已经不像以前那么难了,很多以前主要由框架和库提供的功能,现在 JS 也有类似的原生 API 可以直接用了。

不过框架也是在发展的,一些原生 JS 具备的功能会逐渐被从框架中移除,而框架也会增加其他特性来增强原生特性的高效运用。比如之前各个框架都有自己的组件机制,后来 WebComponent 出来之后各个框架都开始对 WebComponent 进行支持,从完全自己实现组件机制到底层复用 WebComponent,然后表层再根据框架架构思想封装成更易用的特性。

原生特性是分散的,而框架往往是提供了一种现成的解决方案,让大部分需求场景可以直接套用,让开发者把精力更多放在业务上。
mascteen
2020-12-29 10:35:19 +08:00
@fjj666 5 年后,10 年后你的项目中的框架还能招到人维护?
wr516516
2020-12-29 10:40:37 +08:00
@tiglapiles 项目坚持十年都在使用维护,不重构的吗
love
2020-12-29 10:47:21 +08:00
一看就是没写过复杂 App 的,现在的普通 react 单向数据流架构能使复杂度线性增长,而 jquery 时代是指数增长,代码很容易乱得一 B
mascteen
2020-12-29 11:04:37 +08:00
@shintendo

const proto = new Proxy({}, {
get(target, propertyKey, receiver) {
console.log('GET '+propertyKey);
return target[propertyKey];
}
});

const obj = Object.create(proto);
obj.weight;

只看代码,这个在终端输出什么?
tremblingblue
2020-12-29 11:16:47 +08:00
@tiglapiles 话说,这个看字眼都能猜到。。。
nightwitch
2020-12-29 11:25:42 +08:00
vanilla 本身就是原生无修改的意思。。
um1ng
2020-12-29 11:27:04 +08:00
这尼玛不就是原生 js 吗
KuroNekoFan
2020-12-29 11:30:16 +08:00
@tiglapiles 实际工作中用这样的写法可能会被人打死
JerryCha
2020-12-29 11:42:04 +08:00
我是老实人

Vanilia JS 意思就是原生 JS
DOLLOR
2020-12-29 11:46:57 +08:00
我一直觉得把 Web API 或 DOM API 叫做“原生 JS”就跟外行把“硬盘”误叫作“内存”一样。这就是典型的语言和 API 分不清的结果。
“vanilla”这个称呼倒是比“原生 JS”好十倍。
所谓的“原生 JS”这种称呼,应该拿来跟 TS 、coffee 相比才对。
shroxd
2020-12-29 12:09:51 +08:00
框架是一种解决复杂问题的抽象,比如现代前端框架主要解决的问题是如何同步 UI 和 state 。你当然可以不用任何框架,但当代码量增长,你所做的对 UI 和 state 同步代码的抽象最终还是会变成一个低配版的 Vue/React 。还大概率没有他们封装的好,或者说根本不可能。

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

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

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

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

© 2021 V2EX