Vue的理解
约 556 字大约 2 分钟
2026-03-16
思考
说说你对 Vue 的理解?
Vue 是一套用于构建用户界面的渐进式 JavaScript 框架。渐进式意味着你可以根据项目需求逐步采用它的功能,从简单的页面增强到复杂的单页应用都可以胜任。
开发者只需要声明式地描述界面应该长什么样,数据变化时界面会自动更新。 实现上 Vue 3 使用 Proxy 对象拦截数据的读取和修改操作,建立数据与依赖它的组件或计算属性之间的订阅关系。当数据变化时,通知所有订阅者执行更新。 Vue 2 则是使用 Object.defineProperty 递归遍历对象属性进行劫持,这也是 Vue 3 性能更好的原因之一,Proxy 可以监听动态新增的属性,也不需要对数组方法进行特殊重载。
界面被拆分为独立可复用的组件,每个组件包含自己的模板、逻辑和样式。组件可以嵌套组合形成完整的应用树形结构。 模板语法让开发者描述状态到界面的映射关系,而不是手动操作 DOM 更新。这减少了样板代码,也让代码更易维护。
组合式 API 提供了比选项式 API 更灵活的代码组织方式,逻辑可以按功能而非选项类型组织,解决了大型组件中代码分散的问题。 性能方面,Proxy 替代 defineProperty,虚拟 DOM 重写,编译时优化如静态提升和 PatchFlag,使得更新性能显著提升。 新特性包括 Teleport 传送组件、Suspense 异步依赖处理、Fragments 多根节点等。
核心库只关注视图层,但官方提供了完整的技术栈:
Vue Router 处理客户端路由,支持嵌套路由、路由守卫、懒加载等功能。
Pinia 或 Vuex 进行状态管理,Pinia 是 Vue 3 推荐的新一代方案,API 更简洁,类型支持更好。
Vite 作为官方推荐的构建工具,利用浏览器原生 ES 模块实现极速的冷启动和热更新。