摘要
本文回顾了 React 自 2014 年在 OSCON 大会被介绍后的发展历程,包括其兴起的原因、遭受的批评、得到的捍卫,探讨现在是否进入后 React 时代,前端开发是否不再与 React 紧密绑定。
一、React 的起源与兴起
2014 年 OSCON 大会上 Facebook 开发者 Christopher Chedeau 介绍了 React。React 起源于 Facebook 在 2010 年 2 月发布的 PHP 扩展 XHP,为提高安全性并带来快速迭代周期,扩展了 PHP 语法使其能嵌入 XML。但 PHP 是服务器端语言,页面变化需完整重新渲染,于是 Facebook 团队将 XHP 应用逻辑迁移到 JavaScript 中。React 的关键创新是“虚拟 DOM”概念,有交互前后两个“虚拟”DOM 副本,通过比较“差异”将变化应用到实际 DOM,实现部分网页更新,减少重新渲染。此外,JSX(JavaScript XML)是一种语法扩展,为偏爱 HTML 可读性的开发者提供便利。React 不基于模板,采用分解界面为独立组件的方法构建用户界面,适合数据频繁变化的大型应用程序,这些创新使得 React 在 2014 年开始被广泛关注,采用率显著增长。
二、React 的批评者
React 虽然广受好评,但也遭受了批评。2015 年底,一些开发者因 React 学习曲线陡峭感到“疲惫”。Eric Clemmons 在 2015 年 12 月的文章中指出选择 React 会跳入由构建工具、样板文件、代码检查器等构成的陷阱。开发者还质疑 React 的状态管理方式,如 2016 年 8 月 Charlie Crawford 提出组件关系复杂时状态管理会出现问题。2017 年 8 月,Alex Russell 反驳虚拟 DOM 速度快的观点,2019 年 6 月他又指出 React 的“diffing”算法比其他框架慢。
三、React 的捍卫者
过去十年,对 React 的一些抱怨逐渐减少或得到解决。学习曲线不再是大问题,因为有很多新前端开发者以学习 React 为起点。状态管理问题也有了 Redux 或 React 的 Context API 等解决方案。Vercel 公司是 React 的坚定支持者,运行着 Next.js 框架。2023 年 7 月 Vercel 发表关于 React 18 的博文,介绍提升性能的并发特性,但这是否以复杂性为代价也受到质疑,如 Netlify CEO Matt Biilmann 就提出过。
四、是否进入后 React 时代
现在宣称进入后 React 时代可能为时尚早,因为 React 和相关框架仍然很受欢迎。但开发者有了更多选择,如 Astro 和 Svelte 都不使用虚拟 DOM,微软 Edge 团队推动“HTML 优先”方法。前端开发不再像以前那样与 React 紧密绑定,新入行的开发者可以考虑不使用 React,这可能在短期内影响就业机会,但也许能吸引有前瞻性的雇主。