2023年,NPM下载量前100的包里,React生态占了37个。但一个干了15年前端的老兵说:「我再也不用那玩意儿了。」

这话听着像叛逃。但看完他的账本,你可能会重新算一笔账。

从React信徒到"裸奔"开发者

从React信徒到"裸奔"开发者

作者的身份有点意思。他不是那种从没用过框架就嚷嚷"原生最好"的复古派——恰恰相反,疫情那几年他"bundled, I transpiled. I reacted",钩子规则倒背如流,树渲染的玄学门儿清。

转折点是个意外。有份合同死线压顶,他没空把关键库迁进React的"电影宇宙",干脆直接写JS、改DOM。结果?50行代码搭了个流式对象,用户输入响应零延迟,零bug。

「我感觉被骗了。」他原话。原来让网页动起来,根本不需要框架作者的博士学位。

今年他又试了一次。做确定性模拟测试的HTML报告,本能地选了Preact走"最佳实践"。然后报错弹了一脸:Hydration失败、组件树断裂——这些词他曾经精通,现在只觉得烦躁。

换回原生JS。又好了。

维护成本的隐藏条款

维护成本的隐藏条款

框架销售的话术很统一:抽象层帮你屏蔽DOM的复杂度。技术上没错,但 spirit(精神实质)完全两码事。

React确实抽象了DOM,但它同时引入了一套平行宇宙。你要学JSX的编译规则、hooks的闭包陷阱、useEffect的依赖数组侦探游戏。版本迭代?2022年的最佳实践到2024年可能成反模式。Next.js的App Router把社区撕成两半,不是新闻。

浏览器API走的另一条路。作者列了组数据:过去5年,Web Components的浏览器支持从62%涨到97%,零 breaking change。IndexedDB、Broadcast Channel、View Transitions——这些API被设计得要撑10年以上。

框架的"快速迭代"对短期项目是福,对长期维护是复利债务。作者的原话:「生产环境跑超过几个月的东西,原生JS的维护故事好得多。」

LLM时代的文档优势

LLM时代的文档优势

这点很多人没算过。Vanilla JS的文档是MDN——结构化、版本清晰、示例经过20年打磨。当你让Claude或Copilot写代码时,训练数据里MDN的权重远高于某个框架的Discord讨论串。

作者亲测:用自然语言描述需求,LLM生成的原生代码可直接运行。换React?经常需要手动修正hooks依赖、纠正过时的生命周期写法。文档质量直接转化为AI辅助编程的准确率。

开发体验是另一笔账。没有source map调试地狱,没有transpiler的等待时间,没有node_modules的黑洞。他形容这种感觉:「像能直接呼吸了。」

"重新发明轮子"的指控

"重新发明轮子"的指控

反对声音很标准:原生JS是在重复造轮子,React已经解决了状态管理、组件复用、虚拟DOM diff。

作者的回应很产品经理:看场景。他需要的不是"管理复杂应用状态",是让一个报告页面能交互。50行的流式对象够用了,为什么要背100KB的运行时?

他承认框架有存在价值。但「默认用React」的集体无意识,让很多团队给简单问题支付了超额复杂度。一个内部仪表盘、一个配置后台、一个数据展示页——这些占前端工作的多大比例?没人统计过,但作者赌是大多数。

Preact作者Jason Miller有过类似观察。他在2022年写道,很多项目用React是因为"简历驱动开发"——开发者需要市场认可的技能,而非项目需要React的架构。

技术选择的权力结构

技术选择的权力结构

文章最狠的类比在这里:React不是DOM的抽象,是DOM的替代。它创造了一套平行语法,让你越来越难回到平台本身。

这像什么?像SaaS的锁定策略。迁移成本越高,生态粘性越强。不是阴谋论,是激励结构自然演化的结果。

作者没说的是:这种锁定谁在买单。初级开发者学React而非浏览器API,因为招聘启事这么写。团队选型React,因为"没人因为买IBM被开除"的变体。技术债务累积,直到某个凌晨2点的生产事故,有人盯着hydration错误的堆栈 trace 发呆。

他的选择是退出这个游戏。不是反对所有框架,是反对不加思考的默认。

上个月,他把那个确定性模拟测试的报告页面开源了。代码量:HTML 120行,JS 80行,CSS 60行。零依赖,零构建步骤,直接扔给浏览器。

Star数不多,但有个issue让他笑了:「这能跑?我以为现在必须用Vite+React+Tailwind。」

如果2025年你要启动一个新项目,第一行代码会写什么?