

一、从 Web 发展史看前端框架的演进
要真正理解 Vue,不妨先回溯一下 Web 技术的发展历程:
1. 石器时代(静态网页)
早期的网页是纯静态的 HTML 页面,比如 1997 年的 Apple 官网。内容固定,无法交互。后来 CGI 技术出现,允许通过 Perl 等脚本与数据库交互,但效率低、维护难。
2. 文明时代(服务端渲染)
2005 年前后,ASP、JSP 等服务端模板技术兴起。它们将 Java 或 C# 代码嵌入 HTML,在服务器端生成完整页面再返回给浏览器。虽然提升了安全性与动态能力,但开发体验差、前后端耦合严重。
此时 Ajax 技术开始流行(尽管其雏形早在 1999 年就已存在),让页面无需刷新即可与服务器通信,为前端独立发展埋下伏笔。
3. 工业革命时代(前端框架萌芽)
随着移动互联网爆发,jQuery 成为主流,极大简化了 DOM 操作。同时,Backbone、Ember、AngularJS 等框架推动了 单页应用(SPA) 的发展。但早期 SPA 面临 SEO 差、状态管理复杂等问题。
4. 百花齐放时代(现代前端生态)
React、Vue、Angular 等现代框架百花齐放,组件化、工程化、响应式编程成为标配。而 Vue 正是在这一背景下诞生的轻量级、渐进式解决方案。
二、Vue 是什么?
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,由尤雨溪(Evan You)于 2014 年发布。他曾在 Angular 团队工作,从中汲取灵感,但希望打造一个更轻量、更灵活的替代方案。
Vue 的核心理念是:
- 关注视图层(View)
- 数据驱动视图
- 组件化开发
- 易于上手,可逐步集成
它既可以作为轻量库用于简单页面增强,也能配合 Vuex、Vue Router 构建大型单页应用。
三、Vue 的核心特性
1. 数据驱动 & MVVM 模式
Vue 采用 MVVM(Model-View-ViewModel) 架构:
- Model:业务数据与逻辑(通常来自 API)
- View:用户看到的 UI(HTML 模板)
- ViewModel:Vue 实例,负责监听 Model 变化并自动更新 View
通过 响应式系统,当数据变化时,视图自动更新,开发者无需手动操作 DOM。
2. 组件化开发
在 Vue 中,每个 .vue 文件就是一个可复用的组件,包含:
<template>:结构<script>:逻辑<style>:样式(支持 scoped)
优势:
- 降低系统耦合度
- 提高可维护性与复用性
- 便于团队协作与调试(职责单一,问题易定位)
3. 指令系统(Directives)
Vue 提供一系列以 v- 开头的指令,用于声明式地操作 DOM:
| 指令 | 作用 |
|---|---|
v-if / v-show |
条件渲染 |
v-for |
列表渲染 |
v-bind (:) |
动态绑定属性 |
v-on (@) |
事件监听 |
v-model |
双向数据绑定(表单场景) |
相比 jQuery 手动查找 DOM、绑定事件、更新内容,Vue 让开发者只关注数据,不操作 DOM。
四、Vue vs 传统开发(如 jQuery)
以"多步骤注册流程"为例:
-
jQuery 方式 :
通过选择器获取 DOM 元素,点击按钮时手动隐藏/显示对应步骤区域。逻辑分散、易出错、难以维护。
-
Vue 方式 :
定义一个
currentStep变量,模板中用v-if控制显示哪个步骤。点击按钮只需修改currentStep的值,视图自动更新。
✅ 核心思想转变:
jQuery 操作 DOM → Vue 操作数据
五、Vue 与 React 的简要对比
| 维度 | Vue | React |
|---|---|---|
| 数据流 | 支持双向绑定(v-model) |
单向数据流(props + state) |
| 响应式原理 | 基于 Object.defineProperty / Proxy(Vue 3) |
基于不可变数据 + setState 触发重渲染 |
| 模板 vs JSX | 使用 HTML 模板(更贴近传统前端) | 使用 JSX(JavaScript + XML) |
| 学习曲线 | 更平缓,适合初学者 | 需理解函数式编程、Hooks 等概念 |
| Diff 算法 | 双端指针优化,边 diff 边更新 | 生成完整 patch 树后批量更新 |
| 生态工具 | vue-cli、Vite、Pinia、Vue Router | Create React App、Next.js、Redux/Zustand |
两者并无绝对优劣,Vue 更"约定优于配置",React 更"灵活自由"。
六、总结
Vue 的出现,解决了传统开发中DOM 操作繁琐、状态管理混乱、组件复用困难 等问题。它通过响应式数据绑定 + 组件化架构,让开发者专注于业务逻辑,而非底层细节。
对我而言,Vue 不仅是一个框架,更是一种高效、清晰、可维护的前端开发范式。
参考资料
- Vue 官方文档
- 知乎:Vue 为什么这么火?
- 知乎:深入理解 Vue 响应式原理
- SegmentFault:前端发展简史

