很长一段时间,Web 开发的前景似乎没有什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又猛窜了一波。今天主要想跟大家聊聊最新 Web 开发趋势。相信这波浪潮会继续激发 Web 开发者的关注,对万象更新的 2023 年更具期待。闲言少叙,马上进入正题。
一、(元)框架
单页应用程序(SPA)及各类相关框架(包括 React.js、Vue.js、Svelte.js 等)或多或少都经历过一定的炒作周期,也用多年阅历证明了自身强大的生命力。但随着以这些解决方案为基础的元框架的快速兴起,可以看到应用程序正在明显从客户端渲染(CSR)转向服务器端渲染(SSR)。如今,无论你使用哪一种 JavaScript 框架,总能看到 SSR 的影子。
其中最具人气的 Next.js 元框架就以 React.js 为基础。React 核心开发者 Andrew Clark 将 2022 年发布的新版本称为“真正的 React 18”,因为其中包含 React 团队为底层库基础构建块构建的所有 battery(例如 Suspense、流式 SSR 等)。Vercel(Next.js 背后的公司)也与 React.js 核心团队紧密合作,共同打造出色的开发者体验。
虽然不少开发者都对 Next.js 和 React.js 之间过于“亲密”的关系颇有微词,但 React.js 并非不可替代。最近刚刚被 Shopify 收购的 Remix,就采用不同方法将 React.js 转化为元框架(例如将 Web 标准设为优先)。而且在竞争之外,两套框架之间也有一定程度的功能融合(例如嵌套路由)。
除了现代 SSR 领域最有力的参与者、帮助众多前端开发者顺利成型为全栈开发者的 Next.js,其他一些重要框架同样值得大家关注:SvelteKit(基于 svelte.js 构建)及其最新 1.0 版本是由 Vercel 和 SolidStart(基于 Solid.js 构建)提供支持,较 React.js 拥有更好的开发者体验。
二、应用程序与渲染模式
虽然过去的十年(2010 年至 2020 年),Web 世界一直由单页应用程序(SPA)及其客户端渲染模式(CSR)所主导——从 Knockout.js 到 Ember.js,再到 Angular.js、React.js 以及 Vue.js 莫不如是——但最近两、三年,人们对使用元框架的服务器端渲染(SSR)越来越青眼有加。从外部来看,这似乎只是历史的又一轮循环,毕竟在多页应用程序(MPA)中使用 SSR 和 JavaScript(例如 jQuery、MooTools、Dojo.js 等)的作法早在 2005 年到 2010 年就曾盛极一时。但这波浪潮的意义绝不只是曾经的 Java(例如 JSP)或后来的 Ruby on Rails 被纳入 SSR,而在于 JavaScript 依赖性的不断增长。几年以来,Next.js 一直是这股变化背后的核心驱力,而 SvelteKit 等其他元框架也正在加入战团、共同促成这一历史性转变。
尽管两种模式的基本用途并不相同,但凭借长久以来与静态站点生成(SSG)的竞争,SSR 如今已经拥有近乎完美的性能表现(参考 Next.js 和 Gatsby.js)。在应用场景下,SSG 一般用于静态内容(例如博客等网站),而 SSR 则用于动态内容(例如 We