很多人一听说“前端框架”,脑子里马上蹦出 Vue、React、Angular 这些名字,以为装个 npm 包就能开干。其实真往深里走,这些框架不是凭空长出来的,背后全靠一堆基础技术托着——就像盖楼得先打地基,再搭钢筋架子,最后才砌砖刷漆。
最底层:浏览器和 HTML/CSS/JavaScript
所有前端框架都跑在浏览器里,所以离不开三件套:HTML 定义结构,CSS 控制样式,JS 实现交互。哪怕你用 Vue 写 <template><button @click="handleClick">点我</button></template>,最终它还是编译成原生 DOM 操作,浏览器才能看懂。
构建工具:没它,连项目都起不来
新建一个 React 项目,执行 npx create-react-app my-app,背后其实是 Webpack 或 Vite 在干活。它们负责把 JSX、TypeScript、SCSS 等一堆现代语法,打包成浏览器能直接运行的 JS 和 CSS 文件。比如这段代码:
import styles from './Button.module.css';
export default function Button() {
return <button className={styles.primary}>提交</button>
}没有构建工具,.module.css 就只是个普通文本文件,根本没法自动加哈希、做局部作用域。
包管理器:框架不是单机版软件
Vue 3 要用 Composition API?得装 @vue/runtime-core;React 做状态管理,可能得加 react-redux 或 zustand。这些都不是框架自带的,全靠 npm 或 pnpm 下载、解析、链接依赖树。你删掉 node_modules 再 npm install 卡住半天?那八成是网络或 registry 镜像的问题——这时候你其实已经在跟包管理器打交道了。
运行时依赖:有些功能,框架自己不写
Vue 的响应式系统底层用的是 Proxy(ES6 新特性),所以 Vue 3 不支持 IE;React 的 Concurrent Rendering 依赖浏览器的 requestIdleCallback 和 setTimeout 调度机制;就连最简单的路由跳转,Vue Router 或 React Router 也得靠浏览器的 History API(pushState、popstate)才能实现无刷新切换页面。
开发体验依赖:你以为的“智能”,其实是别人写的插件
VS Code 里写 Vue 文件,模板高亮、属性提示、组件跳转那么顺滑,靠的是 Volar 插件;写 React + TypeScript,能自动补全 props 类型,背后是 TypeScript 语言服务 + ESLint + Prettier 一起在后台校验格式、检查类型、统一缩进。少装一个插件,可能就变成“写完代码不知道哪错了”。
说白了,前端框架不是独立王国,它是站在浏览器能力、工程化工具、语言特性、社区生态肩膀上的产物。搞清它依赖什么,比死记 API 更有用——下次项目跑不起来,你就知道该查网络、查 Node 版本、查浏览器兼容性,而不是光刷新控制台。”