一、Vue 基础核心
1. 响应式原理
数据驱动:通过 data 定义响应式数据,视图自动同步数据变化。
2、核心机制
- Object.defineProperty(Vue 2.x)或 Proxy(Vue 3.x)实现数据劫持。
- 依赖收集:追踪数据与视图的依赖关系,触发精准更新。
- 虚拟 DOM(Virtual DOM):对比新旧 VDOM 差异,最小化 DOM 操作。
3. 组件化开发
(1)单文件组件(.vue):
- <templete>:HTML模板,支持插值表达式和指令。
- <script>:组件逻辑,选项式API和组合式API。
- <style>:组件样式,支持scoped隔离样式。
(2)组件通信
- 父子组件:props父传子$emit子传父
- 跨组件:全局状态管理工具,Vuex,Pinia,事件总线
- 插槽:内容分发。
4、指令系统
- v-bind :绑定属性(简写 : ,如 :class 、 :style )。
- v-on :绑定事件(简写 @ ,如 @click 、 @input )。
- v-model :双向数据绑定(表单元素常用)。
- v-if / v-else-if / v-else :条件渲染。
- v-for :列表渲染(需配合 :key 优化 diff 算法)。
- v-show :控制元素显示/隐藏(基于 CSS display )。
- 自定义指令:通过 directives 配置,用于 DOM 操作(如权限控制、防抖)。
二、Vue 进阶特性
1. 生命周期钩子
- 创建阶段: beforeCreate (实例刚创建,无数据)→ created (数据初始化完成,可调用 API)。
- - 挂载阶段: beforeMount (模板编译前)→ mounted (挂载到 DOM 后,可操作 DOM)。
- - 更新阶段: beforeUpdate (数据更新前)→ updated (数据更新后,DOM 已同步)。
- - 卸载阶段: beforeUnmount (卸载前)→ unmounted (组件销毁后,清理定时器等)。
- - 错误处理: errorCaptured (捕获子组件错误)。
2、计算属性和监听属性
- computed:基于以来缓存结果,只有依赖变化时才会重新计算。
- watch:监听特定数据变化,执行异步或复杂逻辑。
3、过渡和动画
- 内置组件: <transition> (单元素/组件过渡)、 <transition-group> (列表过渡)。
- CSS 类名: v-enter / v-enter-active 等,配合 CSS 动画或第三方库(如 Animate.css)。
- JavaScript 钩子: before-enter 、 after-enter 等,可自定义 JS 动画。
4. 路由管理
- 声明式导航: <router-link to="/path"> 跳转, <router-view> 渲染组件。
- 路由模式: hash (默认,兼容性好)、 history (需服务端配置)。
- 动态路由: :id 匹配参数(如 /user/:id ),通过 $route.params 访问。
- 路由守卫:全局守卫( router.beforeEach )、组件内守卫( beforeRouteEnter )。
- 嵌套路由:通过 children 配置多级路由(如 /user/1/profile )。
三、Vue生态和周边
1、状态管理工具
- Vuex:state (状态)、 mutations (同步修改)、 actions (异步逻辑)、 getters (计算属性)。
- Pinia:轻量级、支持组合式 API( setup 语法糖),替代 Vuex 的趋势。
2、构建工具与工程化
- Vue CLI:官方脚手架,一键搭建项目(配置 Webpack/Vite、Babel 等)。
- Vite:基于 ES Module 的极速构建工具,适合 Vue 3.x 项目(开发环境无需打包)。
- TypeScript 支持:Vue 3.x 内置 TypeScript 类型定义, defineComponent 推断组件类型。
3、常用组件库
- Element UI(Vue 2)/ Element Plus(Vue 3):PC 端组件库。
- Vuetify:Material 风格组件库,支持响应式设计。
- Naive UI:轻量、美观的 Vue 3 组件库。
4、常用工具库
- Axios:HTTP 请求库(封装 this.$axios 或 useAxios )。
- Lodash:常用函数库(防抖 debounce 、节流 throttle 等)。
- Dayjs:轻量级日期处理库。
5、全栈与服务端渲染
- Nuxt.js:Vue 生态 SSR 框架,支持静态站点生成和服务器端渲染,简化 SEO 和首屏加载。
- Express/Koa + Vue:手动实现 SSR(需处理数据预取、状态同步等)。
四、Vue3 新特性
1、Composition API
setup 函数:替代 Vue 2 的 options API ,逻辑复用更灵活( ref / reactive 定义响应式数据)。
组合函数(Hook):自定义逻辑复用(如 useMousePosition )。
2、Teleport(传送门)
将组件模板渲染到 DOM 任意位置(如模态窗挂载到 body 下)。
3、Suspense
处理异步依赖(如动态组件加载),支持 loading 和 fallback 状态。
4、响应式系统升级
基于 Proxy 实现,支持原生数组和对象嵌套,性能更优。
五、学习路径建议
- 入门:掌握基础语法(模板、指令、组件)、生命周期、Vue Router。
- 进阶:深入响应式原理、组合式 API、状态管理(Pinia)、自定义指令。
- 实战:开发中小型项目(如博客、电商),结合组件库和工程化工具。
- 拓展:学习 SSR(Nuxt.js)、单元测试(Jest/Vitest)、性能优化(虚拟列表、懒加载)。