你写 Web 页面用 React,做桌面用 Electron + React,写原生应用用 React Native,做三维交互用 React Three Fiber,写状态管理要用 Redux,动画用 Framer Motion,连数据流都讲 "One-Way Binding"。它有一种宗教般的统治力,仿佛不写 React,你就不是"现代前端"。
但最近一两年,我越来越感受到 React 的魅力正在悄然消退,尤其是对新项目、新手、甚至资深开发者而言,React 已经不再是"无脑首选"。我不是说 React 要凉了,但它的"统治时代"确实过去了。
一、从"最小"走向"复杂"
React 最初的理念是 "just JavaScript",逻辑就是函数、状态就是变量、更新就是副作用,它是为了减少抽象而生的。
但现在的 React 项目呢?
- useEffect 写出了一堆"时间同步陷阱"
- useCallback、useMemo 滥用反而性能更差
- 状态 lifting 到处都是,Props drilling 写到手软
- Context 不推荐用,Redux 太重,Zustand 又太轻
- 组件里几乎要维护 4 套状态:UI、数据、缓存、副作用
你曾以为 React 是轻量,但它需要你理解的心智负担比 Vue 高得多。
React 开发者日常就像这样:
js
const fetchData = useCallback(async () => {
const data = await getUser();
setState(data);
}, []);
useEffect(() => {
fetchData();
}, [fetchData]);
你不觉得你在和"副作用调度器"打太极吗?
二、不是 React 变弱了,是其他框架太强了
这几年,其他框架已经全面崛起:
1. Vue 3 Composition API + SFC 已成标配
- 写法更自然,类型推导清晰
ref
,computed
,watch
比useEffect
、useMemo
好理解- 不用 memo,不用 callback,不用担心闭包陷阱
- Vue 模板语法能表达更多动态逻辑,更适合业务团队快速开发
2. Svelte 的零虚拟 DOM 更彻底
- 不靠虚拟 DOM,而是编译期做优化
- 写起来像原生 JS,但比 React 清晰太多
- 动画、响应式、组件通信几乎是零学习成本
3. SolidJS 成为性能天花板
- 语法像 React,但运行时是 Signals + 编译优化
- 模板是 compile 出去的,几乎没有虚拟 DOM overhead
- 性能测试秒杀所有框架(Vite 官网都有引用)
如果你只是惯性使用 React,很可能错过了更好的体验和更高的效率。
三、React 生态的膨胀开始拖慢开发效率
React 不再是一个"简单的 UI 框架",它成了一个编排复杂的"半平台型"技术栈:
- 状态管理:Redux / Recoil / Zustand / Jotai / Valtio / Signal...
- 表单:Formik / React Hook Form / Final Form ...
- 路由:React Router / TanStack Router ...
- 服务端渲染:Next.js / Remix / RSC / App Router ...
- 样式方案:CSS-in-JS(Emotion, Styled-Component)/ Tailwind / Vanilla Extract ...
几乎每一样都没有标准答案,每一样都能吵起来。新人进来,光是选型都能花一周,开发效率被"选技术栈"拖垮了。
相比之下,Vue 的官方"集成策略"简洁得多:
- 路由 => vue-router
- 状态管理 => pinia
- 构建 => vite(尤雨溪亲自牵头)
- SSR => Nuxt3
- 动画 => transition、GSAP
四、React 的 API 越来越"不 React"
你有没有发现,从 React 18 开始,你要学的"非 React 核心知识"越来越多:
- React Server Components(RSC)
- Suspense、lazy、streaming
- Hydration / Partial Hydration
- use、React Cache、Flight协议
- Next.js App Router 架构
这些概念对于普通前端开发者过于底层、过于复杂,远远超出一个 UI 库的范畴。
本来你是来写页面的,结果写着写着你在研究操作系统和网络协议。
五、React 社区逐渐失去"创造者"氛围
过去的 React 社区是"创作者的天堂":
- Redux、Recoil、MobX、Jotai 争鸣
- styled-components、Emotion 引领 CSS-in-JS 潮流
- react-query、SWR 等创新思路百花齐放
但现在呢?
- 大厂走向 Server Component,逐步"黑箱化"
- 小团队则被新框架吸引:Vue、Svelte、Solid...
- 开源创新越来越被 App Router 和 RSC 掣肘
React 正走向中心化,但这种中心是 "不透明 + 不兼容" 的。Next.js 成了 React 的"新帝国",而不是"乐高积木"。
六、我为什么还在用 React(但不再推荐)
说了这么多,我现在的项目还在用 React。但我不再推荐它,原因只有一个:
React 不是不能用,而是它不再是性价比最高的选择。
如果你已经精通 React,并维护长期系统,那当然可以继续。
但如果是:
- 新项目
- 小团队
- 面向 Web App 的产品型开发
- 想要更快迭代、更好 DX、更少心智负担
那么:
- Vue3 + Vite 是综合成本最低的
- SvelteKit 是最优雅的渐进全栈体验
- Solid 是最快速的编程体验之一(但生态小)
- Qwik 正在 Server/Streaming 上走出一条未来之路
React 没有"死亡",但它正在"退潮"
就像当年的 jQuery,也曾无处不在,但它不再是主流。
React 依然有庞大的社区、强大的兼容性、丰富的库。但对前端开发者来说:
框架是工具,不是信仰。
🙂你们怎么看?