node 在前端当中的重要性,是否每个前端都应该学习

2022-01-12 13:56:43 +08:00
 zzwyh

如题,请教各位大佬,是否前端都应该熟练使用 node 呢,这样是不是应该就包括后端一系列的基础知识

4203 次点击
所在节点    前端开发
61 条回复
shyling
2022-01-12 17:43:43 +08:00
@3dwelcome 和用个 scala, kotlin 生成个 js 也没啥区别吧
3dwelcome
2022-01-12 17:49:14 +08:00
@shyling “和用个 scala, kotlin 生成个 js 也没啥区别吧”

是没区别,就是单纯的不喜欢 JS 语法,操作的是对象,不是内存,玩不出花样。

写习惯了别的语言后,换 JS 总有一种说不出来的束缚感。

只不过浏览器和 APP 的存在,导致大家又离不开 JS ,所以 vue 和 react 才那么受欢迎。如果当初没发明 JS ,也许现在互联网会更好。
shyling
2022-01-12 17:51:38 +08:00
@3dwelcome 也许吧 w0w
DOLLOR
2022-01-12 18:45:51 +08:00
@3dwelcome
毕竟 js 的生态繁荣,别看网上嘲讽 js 段子多,那恰好是 js 流行的反映。
wasm 的一等公民 C/C++/rust (其他语言都只能算气氛组),个个都是高门槛,不用指望 js 都不愿用的人去学它们。
3dwelcome
2022-01-12 21:06:57 +08:00
@DOLLOR

js 繁荣,是因为互联网平台提供的工作机会,养活了一大批人。

这些人是 JS 选择了他们,不是他们选择了 JS 。
Cielsky
2022-01-12 22:59:33 +08:00
@3dwelcome 高版本 IE 不需要支持,最需要支持的还是低版本啊
sickoo
2022-01-12 23:13:09 +08:00
取决你的方向,好比你只做页面样式,或者简单逻辑,可能用不上多深的 node ,但是专注前端开发绕不开 node ,至于 JS ,九几年就诞生直到现在,没啥说的
icySoda
2022-01-13 00:44:04 +08:00
@3dwelcome 大佬能发个 demo repo 看看吗,感觉你这样搞渲染性能会很差啊,每次都从从 wasn 生成模板来渲染
3dwelcome
2022-01-13 02:22:22 +08:00
@icySoda

仔细看 B 站视频,每次渲染都是局部 DOM 替换,速度很快的。用前端的属于,这叫细粒度更新。

前端真正的性能挑战,在于处理 DOM 海量数据的数据上。

这点传统 VUE 的框架有致命缺点,就是 DOM 节点数量有上限。WASM 则刚好弥补全这点,参见 figma 的设计,全都是 WASM 里面的内存对象去模拟 DOM 。
secondwtq
2022-01-13 03:16:50 +08:00
@3dwelcome 我感觉到了“海量 DOM”这个程度上,浏览器已经卡得不能自理了 ...
这种情况不是应该虚拟列表啥的先把 DOM 降下去么 ...
3dwelcome
2022-01-13 03:37:01 +08:00
@secondwtq
表格的虚模式也不是万能的,第一只能呈现相对简单的结构,第二会让前端代码逻辑变复杂,不好维护。
在 wasm 里,不渲染的 DOM 对象,仅仅只是占个内存,不会让浏览器实际运行变卡。
现在大家缺的不是内存,是性能。JS 为了绕过海量 DOM 缺陷,给代码打上无数个补丁,绕来绕去,这也是我不喜欢 JS 的地方。
secondwtq
2022-01-13 03:56:33 +08:00
@3dwelcome 我就是不明白你这个“DOM”指的是啥 ...
前端说 DOM 指的就是浏览器 native 的 DOM 对象。还有一个为了减少 native DOM 对象操作搞的虚拟 DOM 。不过这俩是分得很清楚的,说 DOM 就是 DOM ,说虚拟 DOM 就是虚拟 DOM 。WASM 里面也可以做虚拟 DOM ,但是要做“DOM”必须过 JS 。
rioshikelong121
2022-01-13 08:37:29 +08:00
Rust + Node + deno 。三手抓,三手都要硬。
jguo
2022-01-13 08:42:48 +08:00
node 只是 javascript 在浏览器外的运行环境,跟后端是两码事。只要涉及前端工程化必然要用到 node
yaphets666
2022-01-13 09:18:32 +08:00
@3dwelcome 因为你不是专业前端,你做的前端项目也不是真正的工程。WASM 的出现是为了增强前端对某些特定功能的实现能力,比如在线音视频剪辑。不是让你拿来写逻辑的。java 一样也可以写前端逻辑。
IvanLi127
2022-01-13 09:22:02 +08:00
不搞基建,不学没事,知道怎么运行 node 程序就够了。
3dwelcome
2022-01-13 09:32:06 +08:00
@secondwtq

"WASM 里面也可以做虚拟 DOM ,但是要做 DOM 必须过 JS 。"

不用必须经过 JS ,WASM 可以直接在 canvas 上自绘制,有 gpu 加持后,性能很高的。
3dwelcome
2022-01-13 09:38:01 +08:00
@yaphets666

仔细看 B 站视频,视频里的 WASM ,就是用来写逻辑的。你不用,不代表别人也不用啊。

所谓“真正的工程”,JS 也是这几年,才刚从 TS 体系建立起来。而 WASM 背后别的语言,很多都有几十年大工程的经验积累,随便哪个体量,都是秒杀普通前端项目的。
grewer
2022-01-13 09:55:45 +08:00
学 都可以学
yaphets666
2022-01-13 10:06:04 +08:00
@3dwelcome 。。。你还是不懂兄弟,你们这些业余前端的两个特征,喜欢吹 TS 和 WASM

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

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

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

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

© 2021 V2EX