打好基础
5 组 · 35 篇Vue简介与项目创建
2 篇模板语法与数据绑定
11 篇模板语法
Vue 模板语法基于 HTML,支持插值表达式、指令和数据绑定,本文介绍核心语法。
插值表达式
插值表达式是 Vue 模板中最基础的数据绑定方式,本文介绍其用法与注意事项。
数据绑定
Vue 提供多种数据绑定方式,包括单向绑定、双向绑定和动态 attribute 绑定。
v-bind绑定
v-bind 用于动态绑定 HTML attribute,支持字符串、对象、数组等多种绑定形式。
v-model双向绑定
v-model 在表单元素上创建双向数据绑定,自动监听输入并更新数据。
v-on事件绑定
v-on 用于监听 DOM 事件并执行处理方法,支持内联处理器和方法引用两种形式。
v-if条件渲染
v-if 指令根据表达式的真假值来动态插入或移除元素,支持 v-else-if 和 v-else 分支。
v-for列表渲染
v-for 指令基于源数据多次渲染元素或模板块,支持数组、对象和数字范围遍历。
v-show显示隐藏
v-show 根据条件切换元素的 CSS display 属性,适合频繁切换的场景。
v-html与v-text
v-html 用于输出原始 HTML,v-text 用于更新元素的文本内容。
v-bind动态class与style
使用 v-bind 动态绑定 class 和 style,支持对象语法和数组语法。
事件处理与表单绑定
6 篇事件处理基础
Vue 事件处理使用 v-on 指令监听 DOM 事件,支持内联处理器、方法调用和事件对象传递。
事件修饰符
事件修饰符简化常见事件处理逻辑,如阻止默认行为、停止冒泡等。
按键修饰符
按键修饰符用于监听键盘事件,支持常用按键和系统修饰键的组合。
表单输入绑定
使用 v-model 指令在各种表单元素上创建双向数据绑定。
v-model修饰符
v-model 修饰符用于控制数据同步的行为,包括类型转换、格式化和更新时机。
表单事件处理
表单事件处理涵盖提交、重置、验证等常见表单操作的实现方式。
计算属性与侦听器
7 篇计算属性的基本用法
计算属性用于声明式地描述一个值依赖其他值的关系,具有缓存特性。
计算属性的缓存特性
计算属性基于响应式依赖进行缓存,只在依赖变化时重新计算。
计算属性的setter
计算属性默认只有 getter,需要时可定义 setter 实现双向赋值。
侦听器的基本用法
侦听器用于在响应式数据变化时执行副作用,支持异步操作。
深度侦听
深度侦听用于侦听对象或数组内部属性/元素的变化。
立即执行侦听器
使用 immediate 选项让侦听器在创建时立即执行一次回调。
计算属性与侦听器的选择
计算属性和侦听器适用于不同场景,正确选择能提高代码可维护性。
组件化开发
9 篇组件基本概念
组件是 Vue 的核心抽象,每个组件封装了可复用的模板、逻辑和样式。
组件注册
组件注册分为全局注册和局部注册,决定组件在哪些地方可以使用。
组件模板
组件模板定义了组件的 HTML 结构,支持单文件组件和内联模板两种形式。
组件数据与方法
组件的 data 必须是函数,确保每个实例拥有独立的数据副本。
组件生命周期
组件生命周期描述了组件从创建到销毁的各个阶段,提供钩子函数执行自定义逻辑。
动态组件与异步组件
动态组件支持运行时切换,异步组件支持延迟加载,两者结合可优化性能。
组件通信
父子组件通信通过 props 传递数据和 $emit 触发事件实现。
组件样式作用域
scoped 属性为组件样式添加作用域,防止样式泄漏到子组件。
插槽
插槽允许父组件向子组件插入内容,支持默认插槽、具名插槽和作用域插槽。
核心能力
5 组 · 31 篇生命周期与钩子函数
8 篇生命周期概述
Vue 组件从创建到销毁经历多个生命周期阶段,每个阶段提供对应的钩子函数。
beforeCreate与created
beforeCreate 在实例初始化后调用,created 在实例创建完成后调用。
beforeMount与mounted
beforeMount 在挂载开始前调用,mounted 在组件挂载到 DOM 后调用。
beforeUpdate与updated
beforeUpdate 在数据变化导致 DOM 更新前调用,updated 在 DOM 更新完成后调用。
beforeDestroy与destroyed
beforeDestroy 在组件销毁前调用,destroyed 在销毁后调用(Vue 3 更名为 beforeUnmount/unmounted)。
activated与deactivated
activated 和 deactivated 是 keep-alive 缓存组件特有的生命周期钩子。
errorCaptured
errorCaptured 钩子用于捕获子孙组件抛出的错误。
父子组件生命周期顺序
父子组件的生命周期钩子执行顺序有明确的先后关系。
组件高级用法与通信
5 篇自定义指令与渲染函数
5 篇自定义指令基础
介绍 Vue 自定义指令的注册方式、全局与局部作用域、基础使用场景,聚焦指令的本质与核心用法。
指令钩子函数
详解 Vue 自定义指令的 5 个生命周期钩子函数,包括 bind、inserted、update、componentUpdated、unbind 的执行时机与用途。
指令参数与修饰符
介绍 Vue 自定义指令中参数(arg)和修饰符(modifiers)的使用方法,通过 binding 对象获取并实现灵活指令。
渲染函数基础
介绍 Vue 渲染函数的核心概念、使用场景和基本语法,理解如何通过 JavaScript 编程式地创建虚拟 DOM。
createElement参数
详解 Vue 渲染函数中 createElement(h)的三个参数的类型、用法和限制,掌握数据对象的完整配置方式。
过度动画与状态复用
5 篇过度动画基础
Vue 过渡动画基础概念与核心原理,涵盖 transition 组件、CSS 过渡类名机制及动画生命周期。
CSS过渡与动画
Vue 中 CSS 过渡与动画的两种实现方式,涵盖 transition 属性过渡和 @keyframes 动画的集成方法。
Vue过渡组件
Vue 内置 Transition 与 TransitionGroup 组件的完整用法,涵盖属性、事件及多元素过渡场景。
列表过渡
TransitionGroup 组件实现列表项进入/离开/移动过渡,涵盖 FLIP 动画、排序动画及性能优化。
状态复用
Vue 中状态复用的多种方案,涵盖 Composables、Provide/Inject 及状态管理模式。
响应式原理与性能优化
8 篇响应式原理
Vue 响应式系统通过 Object.defineProperty 或 Proxy 拦截数据访问与修改,实现视图自动更新。
依赖收集与触发
依赖收集在 getter 中记录订阅者,setter 触发时通知所有订阅者更新视图。
虚拟DOM与Diff算法
虚拟DOM是真实DOM的JS对象映射,Diff算法通过同层比较最小化DOM操作,提升渲染性能。
异步更新队列
Vue 将数据变化后的DOM更新放入异步队列,批量执行以避免重复渲染。
v-for与key的作用
v-for 用于列表渲染,key 帮助 Diff 算法正确识别和复用节点,避免状态错乱。
组件渲染优化
通过合理使用 v-show/v-if、组件拆分、computed 缓存等手段优化组件渲染性能。
keep-alive缓存
keep-alive 缓存动态组件实例,避免重复创建,保留组件状态并提升性能。
事件处理优化
通过事件委托、修饰符和防抖等手段优化事件处理,减少不必要的计算和渲染。
高阶实战
5 组 · 31 篇运行时渲染核心机制
5 篇虚拟DOM与VNode
VNode是虚拟DOM节点的数据结构,包含tag、data、children等属性,通过diff算法最小化真实DOM操作。
响应式数据与依赖追踪
Vue通过Observer递归观测对象和数组,Dep收集依赖,Watcher观察更新,实现数据驱动视图更新。
Diff算法与Patch过程
Vue采用双端对比Diff算法,通过sameVNode快速判断,递归patch子节点实现最小DOM操作。
异步更新队列与nextTick
Vue通过异步更新队列将Watcher去重批量执行,nextTick基于微任务实现延迟回调到DOM更新后。
组件实例化与挂载流程
Vue组件通过_init初始化选项、注入、响应式、事件,$mount编译模板、创建渲染Watcher、执行patch挂载DOM。
运行时渲染和核心机制
5 篇响应式系统与依赖追踪
Vue响应式基于Object.defineProperty劫持getter/setter,通过Dep类实现依赖收集与派发更新。
组件化与渲染函数底层实现
Vue组件化通过Vue.extend创建子类,渲染函数执行返回VNode树,经patch挂载到真实DOM。
事件系统与指令处理底层实现
Vue事件系统通过addEventListener绑定,指令通过钩子函数在patch和更新阶段执行生命周期回调。
插槽与作用域插槽底层实现
插槽本质是prop传递,普通插槽预渲染VNode,作用域插槽是返回VNode的函数,支持子组件向父组件传数据。
KeepAlive与缓存机制底层实现
KeepAlive是抽象组件,通过cache对象缓存VNode,LRU策略管理缓存池,实现组件实例复用。
框架内置API底层实现
5 篇事件系统底层实现
Vue事件系统基于自定义事件总线与发布订阅模式,实现组件间通信与事件分发。
插槽实现原理
插槽本质是组件的prop传递,通过$slots和$scopedSlots实现内容分发与作用域数据绑定。
keep-alive原理
keep-alive是抽象组件,通过缓存VNode实现组件实例复用,避免重复创建销毁。
nextTick实现
nextTick基于异步任务队列与微任务实现,将回调延迟到下次DOM更新循环结束后执行。
全局API实现
Vue全局API通过initGlobalAPI初始化,挂载到Vue构造函数上实现组件注册、混合、插件等功能。
模板编译底层原理
5 篇模板解析与AST生成
Vue模板编译通过词法分析将HTML模板字符串解析为AST节点树,包含标签、属性、文本等节点类型。
静态节点标记与优化
Vue通过markStatic递归标记AST中不包含动态绑定的节点,实现渲染优化和虚拟DOM diff跳过。
虚拟DOM渲染函数生成
Vue通过codegen将AST转换为渲染函数字符串,经Function构造创建可执行函数,生成虚拟DOM树。
编译时指令处理
Vue编译阶段识别并处理v-if/v-for/v-once等指令,生成对应的条件渲染、循环渲染和静态优化代码。
插值表达式与事件绑定
Vue编译阶段将插值表达式{{}}转为_s()调用,事件绑定@click转为on配置对象。
大型项目架构分层设计
11 篇Vue大型项目目录结构设计
本文介绍大型Vue项目目录结构的设计原则,包括按功能/领域分层、模块化组织、核心目录职责划分,确保项目可维护性与可扩展性。
Vue大型项目组件分层与复用策略
本文介绍大型Vue项目组件分层设计,包括基础组件、业务组件、容器组件与展示组件分离,提升代码复用率。
Vue大型项目组件化与模块化设计
本文介绍大型Vue项目组件化与模块化设计原则,包括模块边界划分、依赖管理、状态模块化与插件化架构。
Vue大型项目路由设计与懒加载
本文介绍大型Vue项目路由设计策略,包括路由表组织、动态路由配置、组件懒加载与预加载策略,优化首屏性能。
Vue大型项目API层封装与请求管理
本文介绍大型Vue项目API层封装策略,包括axios实例配置、请求拦截器、统一错误处理、接口模块化管理,确保请求层可维护。
Vue大型项目权限控制与动态路由
本文介绍大型Vue项目权限控制方案,包括角色权限模型、动态路由生成、按钮级权限指令,实现精细化访问控制。
Vue大型项目国际化与主题方案
本文介绍大型Vue项目国际化与主题切换方案,包括vue-i18n配置、语言包管理、动态主题切换与CSS变量应用。
Vue大型项目性能优化策略
本文介绍大型Vue项目性能优化策略,包括组件渲染优化、虚拟滚动、懒加载、打包优化与缓存策略,提升应用响应速度。
Vue大型项目错误监控与日志系统
本文介绍大型Vue项目错误监控与日志系统方案,包括全局错误捕获、Sentry集成、日志分级与上报策略,保障线上稳定性。
Vue大型项目构建与部署配置
本文介绍大型Vue项目构建与部署配置,包括Vite多环境配置、Docker容器化部署、Nginx配置与CI/CD流程,确保生产环境稳定。
Vue大型项目测试策略(单元测试、E2E测试)
本文介绍大型Vue项目测试策略,包括单元测试、组件测试、E2E测试框架选型,Mock策略与测试覆盖率要求,保障代码质量。