继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

别反应过头了,但我真的对React有点看透了

POPMUISE
关注TA
已关注
手记 425
粉丝 80
获赞 425

我实在是受够了大家把它当成唯一的选择。

此处省略了内容

我是Web Components的忠实支持者,几十年来一直在推广W3C标准。你常常听到的那家伙嘟囔着“为什么要用库,浏览器已经提供了你需要的一切”

我经历了HTML从2、3、4到XHTML、5的各种版本,像jQuery和Angular这样的库和框架是如何兴起又衰落的。现在我在这里要告诉你,就是说,你从来没有真正需要过它们中的任何一个,这一点在今天尤为明显。

自定义元素、阴影DOM、HTML模板。这些工具提供了我们构建强大且现代组件所需的一切。然而,到了2025年,Web开发社区依然对React这样的库情有独钟,而无需依赖复杂的抽象。

标准做法

我得承认,React 在现代前端开发的形成过程中起了重要作用。它的组件模型、响应更新和丰富的生态系统在当时都是开创性的。但是,React 对 JSX 等第三方扩展的依赖、合成事件系统、性能损耗以及将样式和逻辑混杂在组件内部的做法都未能达到 web 开发的标准。

Web 组件相比之下是 web 标准的核心部分,利用浏览器的优势,得益于内置的优化,并促进关注分离。这一切都不需要构建流程或运行时库。你是在和平台合作,而不是和平台对抗。

通用设计

也许 Web Components 最不被重视的优点是它们固有的互操作性。只要构建一个符合标准的组件,你就可以将其放进任何框架里。无论你使用的是 Vue、Svelte,还是任何流行的前端框架,甚至是静态 HTML,Web Components 都能无缝对接,并且都能完美融入其中。Web Components 都能完美融入

使用 React 时,在不同框架间移动组件通常意味着需要重写,纠缠的依赖关系以及尴尬的整合。为什么要将自己的工作绑定在一个单一的生态系统中,而浏览器本身已经提供了一种通用的编程语言呢?更不用说在故意设计为无状态的环境中进行状态渲染了。

精心设计的自定义元素可以完全声明式地使用,无缝地融入服务器端渲染,可以通过标准CSS进行样式定义,自然封装在内,等等功能还有很多,详情请参考这里

现状

我不是来指责 React 是邪恶或无用的。它是一个成熟且强大的工具,拥有许多成功的项目案例。但在 2025 年,当开发人员仍然默认使用它时,这似乎更像是一种坏习惯——一个未能跟上平台演化的惯性反应。

对于我们这些多年来一直在使用 Web Components 的人来说,继续使用供应商特定的解决方案越来越与 web 平台的实际需求不符。React 以前解决的大多数问题已经在平台级别得到了解决。Web Components 已经在市场上成熟了好几年了。是时候停止用昨天的工具来解决今天的问题了。想象一下如果我们只是因为“我们一直都是这么做的”,就一直没停止用表格来布局,会怎么样。

构建未来

显然我们都使用自己熟悉的和信任的工具。但有时我们需要挑战自己去重新评估这些工具是否仍然适合当今(以及未来的)需求。这就是为什么有标准,标准会不断演进。这也是为什么我也会遵循这些标准。因为总有一天,React也会像jQuery那样逐渐淡出人们的视野,而Web Components会像互联网一样长存。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP