01|写到今天,最值得追问的已经不是“选哪个框架”,而是“为什么必须先选框架”

前面五篇一路讲下来,

我们已经看到几轮很明显的秩序变化:

  • jQuery 把浏览器现实先做顺
  • BackboneKnockoutEmberAngularJS 抢应用结构解释权
  • React 改写 UI 心智
  • Vue 把采纳摩擦压低
  • SvelteSignals 重新审问 React 时代的默认重量

可如果只把这套系列停在这里,

还是会漏掉今天最强的一层现实。

因为今天很多团队面对框架时,真正感觉到的早就不只是:

“这些 UI 库到底有何不同?”

而是:

“为什么我们好像必须先接受某套框架秩序,项目才能像样地开工?”

这就是最后一篇真正要收束的东西。

框架今天最值得写的,

已经不是它们怎么渲染页面。

而是:

它们为什么一步步长成了现代前端默认的治理层。


02|框架一旦开始提供“默认开工方式”,它的权力就变了

理解这件事,最重要的是先把“框架”从老印象里拿出来。

很多人脑子里对框架的传统理解还是:

  • 一个 UI 层工具
  • 一个组件系统
  • 一个渲染方案

这些当然还是框架的一部分,

但已经不够解释今天的现实了。

因为现代前端世界里,

框架真正权力最大的地方往往不是这些底层能力,

而是它开始提供:

  • 新项目怎么起
  • 目录怎么分
  • 路由怎么做
  • 数据获取推荐什么方式
  • TypeScript 默认怎么配
  • 构建、测试、SSR 该怎么接

一旦这些东西被框架和官方生态一起打包成默认入口,

框架的性质就变了。

它不再只是:

“我帮你渲染 UI。”

而会变成:

“我来告诉你一个现代前端应用默认该怎样存在。”

这一步非常关键。

因为谁定义默认开工方式,

谁就不仅仅是在提供技术能力。

他是在提供:

组织现实。


03|脚手架、文档、推荐路径,比单个 API 更像真正的权力中心

为什么我会说框架今天更像治理层?

因为如果你看现代框架生态,

最有决定性的东西,越来越不是某个单独函数或语法。

而是:

  • 官方文档首页第一步推荐什么
  • Start a New Project 让你装什么
  • 默认目录结构长什么样
  • 官方到底鼓励 CSR、SSR、SSG、还是全栈路由
  • 团队第一次开始项目时,到底被引导到哪条路上

这些看起来不像“底层技术”。

却往往最能定义现实。

比如今天很多新项目之所以会天然带着:

  • 路由层
  • 类型层
  • lint / format 约定
  • 脚手架默认配置
  • SSR / hydration 视角

并不是因为所有团队都独立推导出这些东西。

而是因为:

框架生态已经把这些东西包装成了最容易被采用的默认路径。

这就是为什么文档和脚手架的权力越来越大。

它们不只是教学材料。

它们更像:

现代前端秩序的入口分发器。


04|TypeScript、路由、SSR、数据获取一起被打包进来之后,框架就越来越像默认操作系统

框架边界之所以会继续外扩,

根本原因不难理解。

因为前端应用已经越来越不像“只需要画界面”的事。

它今天常常天然带着这些问题:

  • 类型要不要默认开
  • 路由要怎样组织
  • 服务端渲染要不要做
  • 数据获取是在客户端、服务端还是边界层完成
  • 构建和发布该怎么接

如果这些事都由团队自己从零决定,

项目启动成本就会非常高。

于是现实里最有竞争力的框架生态,

往往就会开始一起给出默认答案。

从团队角度看,这当然很省事。

因为默认值能显著降低:

  • 开工成本
  • 争论成本
  • 教学成本
  • 迁移成本

可从历史角度看,这意味着另一件更大的事:

框架已经越来越不像一套渲染方案,而越来越像前端默认操作系统。

因为它不只影响视图层。

它开始影响:

  • 项目长什么样
  • 团队如何协作
  • 新人如何进入
  • 生态如何扩张

到这一步,“框架之争”其实已经部分变成:

谁来给现代前端提供最可信的默认现实。


05|这也是为什么今天换框架,越来越像换组织方式

很多老一点的技术语境里,

换框架常被理解成:

“把一层 UI 工具换掉。”

可今天越来越不是这样了。

因为一旦框架已经和这些东西绑在一起:

  • 目录结构
  • 组件组织
  • 数据获取
  • 路由
  • 类型
  • 构建
  • SSR
  • 官方推荐文档

那你换框架时真正要换掉的,

往往就不只是组件 API。

而是:

  • 一整套团队默契
  • 一整套项目组织方式
  • 一整套知识地图
  • 一整套默认问题解法

所以今天很多团队对“换框架”这件事会特别谨慎,

不是因为他们单纯懒。

而是因为现实里的迁移成本,

已经很接近:

换一套组织方式。

这就说明框架确实已经不只是技术层面的可选项。

它已经深到足以塑造组织行为。


06|meta-framework 的崛起,更说明框架战争已经从 UI 层继续往入口层外扩

这套变化还有一个特别明显的信号,

就是 meta-framework 的崛起。

这里不用把它们全部展开成另一套系列,

但必须点出来。

因为 Next.jsNuxtSvelteKitRemix 这一类路线说明得非常清楚:

框架战争没有停在组件层。

它已经继续往:

  • 应用启动方式
  • 服务端与客户端边界
  • 文件系统路由
  • 数据获取协议
  • 部署模式

这些更高层继续外扩。

换句话说,

如果早年的框架是在争“页面与状态如何组织”,

那今天越来越多的框架生态已经在争:

整个 Web 应用从创建到部署的一整条默认路径,该由谁来定义。

这就是为什么我说,

现代框架更像治理层。

因为它不只告诉你页面怎么渲染。

它还越来越像在告诉你:

应用该如何出生、如何成长、如何运行。


07|可治理层的胜利,也会反过来制造新的包袱

当然,这种默认治理层的形成并不只是好事。

它确实带来了巨大的效率。

但也会留下新的代价:

  • 生态锁定更深
  • 框架升级影响面更大
  • 官方路线变化会牵动整套项目现实
  • 新人越来越容易把框架默认值误当成平台天然能力

也就是说,

框架越像操作系统,

它就越会产生一种新的历史包袱:

开发者越来越难分清,哪些是 Web 平台本身的能力,哪些其实只是某套框架秩序暂时赢下来的默认现实。

这点非常值得警惕。

因为今天很多争论看起来像“最佳实践”,

其实只是某一代框架生态在特定时间点打赢后留下来的秩序习惯。

而一旦这种习惯被误认成自然法则,

下一轮反攻时,大家就又会重新经历一次认知松动。

所以治理层的形成,

既是现代前端效率的大来源,

也是现代前端很多路径依赖的大来源。


08|你今天觉得理所当然的前端默认值,其实都是历史决定叠出来的

把整套 框架江湖 写完以后,

最值得留给今天开发者的一层判断可能就是:

你今天面对的很多“现代前端现实”,

并不是天然如此。

它们大多都是前几轮框架战争叠加出来的后果。

比如:

  • 为什么新项目默认先选框架
  • 为什么默认就要有组件、路由、类型和构建链
  • 为什么框架文档会比平台文档更影响日常开发
  • 为什么一套团队协作方式会和某个框架深度捆绑
  • 为什么大家会把“官方推荐路径”看得越来越重

这些都不是抽象趋势。

它们背后都有历史。

而这套历史最特别的地方就在于:

框架从来不只是“前端开发更方便”的工具。

它一步步长成了:

谁来定义现代前端默认现实,谁就更接近控制整个开发入口。

这就是为什么框架江湖直到今天还远远没有停火。

因为当默认入口、默认组织方式和默认工作流都被绑进去以后,

框架战争就已经不再只是技术偏好之争。

它会越来越像:

现代前端世界的治理权之争。


框架打到最后,争的是谁来定义现代前端的默认现实

所以这套 《框架江湖》 真正想讲的,不是“框架怎么一代代变流行”。

更想讲的是:

为什么当 Web 应用复杂度越来越深地压到浏览器端之后,前端社区最终不只是发明了一些好用的 UI 工具,而是一步步发明出了一整套能够定义页面结构、状态流动、团队协作和项目默认入口的治理秩序。

如果把 JavaScript 江湖 写的是行为层如何夺权,

模块化江湖 写的是代码组织制度如何打成长期战争,

前端工程化江湖 写的是工作流为什么越来越厚,

TypeScript 江湖 写的是类型系统如何接管默认现实,

框架江湖 最后要写的,就是:

当这些压力一起压到前端应用身上之后,谁来解释“一个现代前端项目默认应该怎样开始、怎样组织、怎样持续运转”,便成了整场战争里最有权力的一层。


参考与延伸阅读

  1. Start a New React Project
    https://react.dev/learn/start-a-new-react-project

  2. Introduction | Vue.js
    https://vuejs.org/guide/introduction.html

  3. Vue 3 as the New Default
    https://blog.vuejs.org/posts/vue-3-as-the-new-default.html

  4. Angular
    https://angular.dev/

  5. Ember Releases
    https://emberjs.com/releases/

  6. Why Vite
    https://vite.dev/guide/why