浏览器即框架:为何我弃用 React 回归 Vanilla JavaScript
Why Vanilla JavaScript
过去一年,我完全使用 Vanilla JavaScript 和 Web Components 构建了一款功能复杂的音乐教学平台 instruxmusic.com。面对 React、Angular、Vue 和 Svelte 等主流框架带来的构建步骤、TypeScript 依赖以及人为制造的复杂性,我选择回归原生。我认为浏览器引擎本身就是最强大的框架,它已经完美处理了缓存、表单和导航。我们发明了太多模板语言和预处理器,却忽略了 HTML、CSS 和 JavaScript 本身的进化。与其被框架剥夺对 DOM 的直接控制权,不如利用 Web Components 和 EHTML 等工具,用更简单、更可控的方式构建健壮的应用。
浏览器引擎是一个庞大而复杂的软件,它为你处理了几乎所有事情,你真正需要做的只是编写包含 HTML、CSS 和 JavaScript 的动态文件,浏览器引擎会自动将它们无缝整合在一起。
- 有评论者反驳称,对于 Google Docs 等复杂 UI,React 提供的组件化架构和状态管理是必要的,否则手动处理 DOM 和生命周期将导致代码不可维护。
- 一位从业者指出,React 作为事实标准降低了团队沟通成本,新成员能迅速理解组件渲染逻辑和状态流转,而自研框架则迫使开发者追溯非标准化的状态传递路径。
- 有观点强调,现代 Web 应用对分页、过滤、即时验证等功能的预期已大幅提升,简单的 Vanilla JS 难以应对这种复杂度,构建工具(Build Tool)和代码分割对用户体验至关重要。
- 部分开发者认为,随着 AI 编码代理的普及,Vanilla JS 的优势被放大,因为 AI 能高效生成样板代码并遵循设计模式,使得零依赖、无构建步骤的开发模式更易审查和调试。
- 有评论者提出反直觉观点,认为单页应用(SPA)的感知速度优势常被误解,实际上加载大量第三方库和广告脚本的多页应用(MPA)往往比精心优化的 SPA 更慢。