
课程是一套专为希望深入 Vue3 底层原理、掌握前端框架设计思想的开发者量身打造的硬核源码实战教程。课程以”框架设计前瞻→源码环境搭建→响应系统→运行时渲染器→编译器→全链路合并”为核心路径,系统性地串联起从编程范式对比、Vue3 源码结构设计、Proxy/Reflect 响应式原理、Effect 依赖收集与触发、Watch/Computed 实现,到 h 函数与 VNode 构建、Renderer 渲染器开发(元素/文本/注释/片段节点挂载与更新)、组件设计原理、Diff 算法五大场景完整实现,再到模板编译全流程(AST 解析→AST 转化→Render 函数代码生成)、指令与响应性数据编译处理,最终将运行时与编译器合并为可用的 createApp 的完整框架开发链路。你将不仅读懂 Vue3 源码,更能亲手搭建一个可运行的 mini-Vue3 框架,真正理解”框架是如何被设计出来的”。
核心学习路径
1. 课程导读与框架设计前瞻(第1-2章)
课程导读:了解课程整体架构与学习路线。
编程范式对比:深入理解命令式编程与声明式编程的本质差异,以及 Vue 为何选择声明式。
框架设计核心概念:理解运行时(Runtime)与编译时(Compiler)的职责划分、副作用(Side Effect)的概念、框架设计中的取舍哲学。
TypeScript 支持:了解 Vue3 如何提供优秀的 TypeScript 类型推导支持。
2. Vue3 源码结构与环境搭建(第3章)
源码架构解析:深入 Vue3 源码目录结构与模块设计思想。
测试环境搭建:在 Vue 源码中创建测试实例并运行,配置 SourceMap 实现源码级调试。
源码阅读方法论:掌握 debugger 调试技巧与系统化阅读源码的方法论。
Mini 框架起步:从零创建 vue-next-mini 项目,配置 TypeScript、Rollup 打包器、Prettier 代码规范,搭建框架雏形。
3. 响应系统——Vue3 的核心引擎(第4-7章)
响应式设计原则:理解 JS 的程序性本质,对比 Vue2(Object.defineProperty)与 Vue3(Proxy)的响应式方案差异,深入 Reflect 拦截对象操作的机制。
reactive 函数实现:从零构建 reactive 函数,实现 Proxy 拦截器(createGetter/createSetter),构建 WeakMap 依赖存储结构,实现 track 依赖收集与 trigger 触发依赖,掌握 Effect 机制与一对多依赖关系(Dep 模块)。
ref 响应性:深入源码理解 ref 处理复杂数据类型(对象/数组)与简单数据类型(字符串/数字)的不同响应性策略,并框架实现。
computed 计算属性:掌握 computed 的惰性求值与缓存机制,实现 ComputedRefImpl,理解调度器(Scheduler)处理脏状态的原理。
watch 数据侦听器:深入 watch 的源码实现,理解依赖收集原则,实现 watch 数据监听器与 scheduler 调度系统。
4. 运行时(Runtime)——渲染核心(第8-12章)
运行时设计原则:理解 HTML DOM 节点树与虚拟 DOM 树的映射关系,掌握挂载(Mount)与更新(Update)的核心流程,深入 h 函数与 render 函数的设计。
h 函数与 VNode 构建:从零实现 h 函数,处理元素节点(ELEMENT)、文本节点(TEXT)、注释节点(COMMENT)、片段节点(FRAGMENT)、数组子节点、组件 VNode 等全部场景,并实现 class 与 style 的增强处理。
Renderer 渲染器:构建 renderer 基本架构,实现 ELEMENT 节点的挂载(props 区分处理、HTML 属性与 DOM 属性、style 属性挂载、事件挂载与更新)、更新(新旧节点相同/不同元素的处理)、卸载操作,以及 Text、Comment、Fragment 节点的挂载逻辑。
组件设计原理:深入无状态基础组件与有状态响应性组件的挂载、更新、卸载逻辑,实现组件生命周期回调(onMounted/onUpdated/onUnmounted 等),掌握 setup 函数与 Composition API 的实现原理,实现响应性数据改变触发组件重新渲染的完整链路。
Diff 算法核心实现:系统学习 VNode key 属性的作用,完整实现 Diff 算法五大场景——自前向后比对、自后向前比对、新节点多余旧节点、旧节点多余新节点,以及乱序场景下的最长递增子序列算法,实现高效的虚拟 DOM 差异比对。
5. 编译器(Compiler)——模板到渲染函数(第13-15章)
编译核心设计:理解模板编译的三步流程(解析模板生成 AST → AST 转化为 JavaScript AST → 生成 render 函数代码),掌握 AST(抽象语法树)的核心概念。
构建编译器:从零实现 parse 方法(有限自动状态机扫描 Token 生成 AST)、transform 阶段(AST 转化为 JavaScript AST)、code generation 阶段(解析 JavaScript AST 拼接 render 函数代码),实现完整的最小化编译器。
深入编译处理(困难):实现响应性数据(ref/reactive)在编译时的处理逻辑、多层级模板处理、v-bind/v-on 等指令的 AST 解析与转化、以及最终 render 函数的生成与执行处理。
6. 运行时与编译器合并——完整的 Vue 框架(第16章)
基于 render 的 createApp:实现基于 h 函数/render 函数的应用创建逻辑。
基于 template 的 createApp:实现基于模板字符串的应用创建逻辑,将编译器与运行时无缝合并。
7. 课程总结(第17章)
回顾整个框架搭建过程,梳理从响应式到渲染再到编译的完整知识体系。
课程亮点
源码级深度:每个知识点均先阅读 Vue3 官方源码实现,再亲手框架实现,真正”读懂源码、手写源码”。
全链路打通:覆盖响应系统→运行时→编译器三大核心模块,完整走通 Vue3 框架从数据变化到视图更新的端到端流程。
从零搭建 Mini 框架:不是简单的 API 调用,而是从 0 到 1 构建一个可运行的 vue-next-mini 框架,包含完整的响应式、渲染器、编译器。
Diff 算法五大场景全覆盖:从简单的同向比对到复杂的最长递增子序列乱序优化,彻底吃透虚拟 DOM 差异比对的核心算法。
工程化规范:课程项目配置了 TypeScript、Rollup 打包、Prettier 代码规范,培养企业级开发习惯。
配套源码齐全:提供 vue-next-mini 完整源码,方便课后对照学习与复习。
课程目录:
Vue3框架
+—{10}–第10章runtime运行时-构建renderer渲染器
| [10.10]–10-10框架实现:删除元素,ELEMENT节点的卸载操作.mp4
| [10.11]–10-11源码阅读:class属性和其他属性的区分挂载.mp4
| [10.12]–10-12深入属性挂载:HTMLAttributes和DOMPr.mp4
| [10.13]–10-13框架实现:区分处理ELEMENT节点的各种属性挂载.mp4
| [10.14]–10-14源码阅读:ELEMENT节点下,style属性的挂载和.mp4
| [10.15]–10-15框架实现:ELEMENT节点下,style属性的挂载和.mp4
| [10.16]–10-16源码阅读:ELEMENT节点下,事件的挂载和更新.mp4
| [10.17]–10-17深入事件更新:vueeventinvokers.mp4
| [10.18]–10-18框架实现:ELEMENT节点下,事件的挂载和更新.mp4
| [10.19]–10-19局部总结:ELEMENT节点的挂载、更新、props打.mp4
| [10.1]–10-1前言.mp4
| [10.20]–10-20源码阅读:renderer渲染器下,Text节点的挂载.mp4
| [10.21]–10-21框架实现:renderer渲染器下,Text节点的挂载.mp4
| [10.22]–10-22源码阅读:renderer渲染器下,Comment节点.mp4
| [10.23]–10-23框架实现:renderer渲染器下,Comment节点.mp4
| [10.24]–10-24源码阅读:renderer渲染器下,Fragment节.mp4
| [10.25]–10-25框架实现:renderer渲染器下,Fragment节.mp4
| [10.26]–10-26总结.mp4
| [10.2]–10-2源码阅读:初见render函数,ELEMENT节点的挂载.mp4
| [10.3]–10-3框架实现:构建renderer基本架构.mp4
| [10.4]–10-4框架实现:基于renderer完成ELEMENT节点挂载.mp4
| [10.5]–10-5框架实现:合并渲染架构,得到可用的render函数.mp4
| [10.6]–10-6源码阅读:渲染更新,ELEMENT节点的更新操作.mp4.ts
| [10.7]–10-7框架实现:渲染更新,ELEMENT节点的更新实现.mp4
| [10.8]–10-8源码阅读:新旧节点不同元素时,ELEMENT节点的更新操.mp4
| [10.9]–10-9框架实现:处理新旧节点不同元素时,ELEMENT节点的更.mp4
|
+—{11}–第11章runtime运行时-组件的设计原理与渲染方案
| [11.10]–11-10框架实现:组件生命周期回调处理逻辑.mp4
| [11.11]–11-11源码阅读:生命回调钩子中访问响应性数据.mp4
| [11.12]–11-12框架实现:生命回调钩子中访问响应性数据.mp4
| [11.13]–11-13源码阅读:响应性数据改变,触发组件的响应性变化.mp4
| [11.14]–11-14框架实现:响应性数据改变,触发组件的响应性变化.mp4
| [11.15]–11-15源码阅读:compositionAPI,setup函数.mp4
| [11.16]–11-16框架实现:compositionAPI,setup函数.mp4
| [11.17]–11-17总结.mp4
| [11.2]–11-2源码阅读:无状态基础组件挂载逻辑.mp4
| [11.3]–11-3源码阅读:无状态基础组件挂载逻辑.mp4
| [11.4]–11-4框架实现:完成无状态基础组件的挂载逻辑.mp4
| [11.5]–11-5源码阅读:无状态基础组件更新逻辑.mp4
| [11.6]–11-6局部总结:无状态组件的挂载、更新、卸载总结.mp4
| [11.7]–11-7源码阅读:有状态的响应性组件挂载逻辑.mp4
| [11.8]–11-8框架实现:有状态的响应性组件挂载逻辑.mp4
|
+—{12}–第12章runtime运行时-diff算法核心实现
| [12.10]–12-10框架实现:场景四:旧节点多于新节点时的diff比对.mp4
| [12.11]–12-11局部总结:前四种diff场景的总结与乱序场景.mp4
| [12.12]–12-12前置知识:场景五:最长递增子序列.mp4
| [12.13]–12-13源码逻辑:场景五:求解最长递增子序列.mp4
| [12.14]–12-14源码阅读:场景五:乱序下的diff比对.mp4
| [12.15]–12-15源码阅读:场景五:乱序下的diff比对.mp4
| [12.16]–12-16框架实现:场景五:乱序下的diff比对.mp4
| [12.17]–12-17总结.mp4
| [12.1]–12-1前言.mp4
| [12.2]–12-2前置知识:VNode虚拟节点key属性的作用.mp4
| [12.3]–12-3源码阅读:场景一:自前向后的diff对比.mp4
| [12.4]–12-4框架实现:场景一:自前向后的diff对比.mp4
| [12.5]–12-5源码阅读:场景二:自后向前的diff对比.mp4
| [12.6]–12-6框架实现:场景二:自后向前的diff对比.mp4
| [12.7]–12-7源码阅读:场景三:新节点多余旧节点时的diff比对.mp4
| [12.8]–12-8框架实现:场景三:新节点多余旧节点时的diff比对.mp4
| [12.9]–12-9源码阅读:场景四:旧节点多于新节点时的diff比对.mp4
|
+—{13}–第13章compiler编译器-编译时核心设计原则iclass=
| [13.1]–13-1前言.mp4
| [13.2]–13-2模板编译的核心流程.mp4
| [13.3]–13-3抽象语法树-AST.mp4
| [13.4]–13-4AST转化为JavaScriptAST,获取codege.mp4
| [13.5]–13-5JavaScriptAST生成render函数代码.mp4
| [13.6]–13-6总结.mp4
|
+—{14}–第14章compiler编译器-构建compile编译器
| [14.10]–14-10框架实现:转化JavaScriptAST,构建深度优先.mp4
| [14.11]–14-11框架实现:构建transformXXX方法,转化对应节.mp4
| [14.12]–14-12框架实现:处理根节点的转化,生成JavaScriptA.mp4
| [14.13]–14-13扩展知识:render函数的生成方案.mp4
| [14.14]–14-14源码阅读:编译器第三步:生成render函数.mp4
| [14.15]–14-15框架实现:构建CodegenContext上下文对象.mp4
| [14.16]–14-16框架实现:解析JavaScriptAST,拼接rend.mp4
| [14.17]–14-17框架实现:新建compat模块,把render转化为f.mp4
| [14.18]–14-18总结.mp4
| [14.1]–14-1前言.mp4
| [14.2]–14-2扩展知识:JavaScript与有限自动状态机.mp4
| [14.3]–14-3扩展知识:扫描tokens构建AST结构的方案.mp4
| [14.4]–14-4源码阅读:编译器第一步:依据模板,生成AST抽象语法树.mp4
| [14.5]–14-5框架实现:构建parse方法,生成context实例.mp4
| [14.6]–14-6框架实现:构建有限自动状态机解析模板,扫描token生成.mp4
| [14.7]–14-7框架实现:生成AST,构建测试.mp4
| [14.8]–14-8扩展知识:AST到JavaScriptAST的转化策略和.mp4
| [14.9]–14-9源码阅读:编译器第二步:转化AST,得到JavaScri.mp4
|
+—{15}–第15章compiler编译器-深入编辑器处理逻辑(困难)
| 15-12 基于编辑器的指令(v-xx)处理:JavaScript AST ,transform 的转化逻辑.mp4
| [15.10]–15-10困难-基于编辑器的指令(v-xx)处理:AST解析逻辑.mp4
| [15.11]–15-11困难-基于编辑器的指令(v-xx)处理:JavaScr.mp4
| [15.13]–15-13基于编辑器的指令(v-xx)处理:生成render函数.mp4
| [15.14]–15-14总结.mp4
| [15.1]–15-1前言.mp4
| [15.2]–15-2响应性数据的编辑器处理:响应性数据的处理逻辑.mp4
| [15.3]–15-3响应性数据的编辑器处理:AST解析逻辑.mp4
| [15.4]–15-4响应性数据的编辑器处理:JavaScriptAST转化逻.mp4
| [15.5]–15-5响应性数据的编辑器处理:render转化逻辑分析.mp4
| [15.6]–15-6响应性数据的编辑器处理:generate生成render.mp4
| [15.7]–15-7响应性数据的编辑器处理:render函数的执行处理.mp4
| [15.8]–15-8多层级模板的编辑器处理:多层级的处理逻辑.mp4
| [15.9]–15-9基于编辑器的指令(v-xx)处理:指令解析的整体逻辑.mp4
|
+—{16}–第16章运行时+编译时-合并vue处理逻辑
| [16.2]–16-2基于render渲染的createApp的构建逻辑.mp4
| [16.3]–16-3基于template渲染的createApp的构建逻辑.mp4
| [16.4]–16-4总结.mp4
|
+—{17}–第17章课程总结
| [17.1]–17-1总结.mp4
|
+—{1}-第1章 课程导读
| 1-1课程导读0939_ev.mp4
|
+—{2}-第2章 框架设计前瞻 – 框架设计中的一些基本概念
| 2-10运行时编译时1619_ev.mp4
| 2-11什么是副作用0407_ev.mp4
| 2-12Vue3框架设计概述0447_ev.mp4
| 2-13扩展所谓良好的`TypeScript`支持是如何提供的0611_ev.mp4
| 2-14总结0104_ev.mp4
| 2-1前言0154_ev.mp4
| 2-2编程范式之命令式编程0619_ev.mp4
| 2-3编程范式之声明式编程0427_ev.mp4
| 2-4命令式VS声明式0721_ev.mp4
| 2-5企业应用的开发与设计原则0656_ev.mp4
| 2-6为什么说框架的设计过程其实是一个不断取舍的过程0549_ev.mp4
| 2-7vue中的html是真实的html吗0456_ev.mp4
| 2-8什么是运行时1716_ev.mp4
| 2-9什么是编译时0744_ev.mp4
|
+—{3}-第3章 Vue 3源码结构 – 搭建框架雏形
| 3-10模块打包器rollup1238_ev.mp4
| 3-11初见框架雏形配置路径映射0516_ev.mp4
| 3-12总结0127_ev.mp4
| 3-1前言0127_ev.mp4
| 3-2探索源码设计Vue3源码设计大解析1145_ev.mp4
| 3-3创建测试实例在Vue源码中运行测试实例0901_ev.mp4
| 3-4跟踪解析运行行为为vue开启SourceMap0906_ev.mp4
| 3-5授人以鱼如何针对源码进行debugger0506_ev.mp4
| 3-6授人以渔如何阅读源码0724_ev.mp4
| 3-7开始搭建自己的框架创建vue-next-mini0602_ev.mp4
| 3-8为框架进行配置导入ts0744_ev.mp4
| 3-9引入代码格式化工具prettier让你的代码结构更加规范0610_ev.mp4
|
+—{4}-第4章 响应系统 – 响应系统的核心设计原则
| 4-1前言0150_ev.mp4
| 4-2JS的程序性0435_ev.mp4
| 4-3如何让你的程序变得更加聪明0524_ev.mp4
| 4-4vue2的响应性核心APIObjectdefineProperty0819_ev.mp4
| 4-5ObjectdefineProperty在设计层的缺陷0859_ev.mp4
| 4-6vue3的响应性核心APIproxy1420_ev.mp4
| 4-7proxy的最佳拍档Reflect拦截js对象操作1513_ev.mp4
| 4-8总结0151_ev.mp4
|
+—{5}-第5章 响应系统 – 初见 reactivity 模块
| 5-10框架实现构建track依赖收集函数0538_ev.mp4
| 5-11框架实现构建trigger触发依赖0347_ev.mp4
| 5-12总结单一依赖的reactive0356_ev.mp4
| 5-13功能升级响应数据对应多个effect0438_ev.mp4
| 5-14框架实现构建Dep模块处理一对多的依赖关系0818_ev.mp4
| 5-15reactive函数的局限性0510_ev.mp4
| 5-16总结0126_ev.mp4
| 5-1前言0155_ev.mp4
| 5-2源码阅读reactive的响应性跟踪Vue3源码实现逻辑12125_ev.mp4
| 5-3源码阅读reactive的响应性跟踪Vue3源码实现逻辑21703_ev.mp4
| 5-4框架实现构建reactive函数获取proxy实例1257_ev.mp4
| 5-5框架实现什么是WeakMap它和Map有什么区别0919_ev.mp4
| 5-6框架实现createGettercreateSetter0933_ev.mp4
| 5-7热更新的开发时提升开发体验0314_ev.mp4
| 5-8框架实现构建effect函数生成ReactiveEffect实例0702_ev.mp4
| 5-9框架实现tracktrigger0557_ev.mp4
|
+—{6}-第6章 响应系统 – ref 的响应性
| 6-1前言0106_ev.mp4
| 6-2源码阅读ref复杂数据类型的响应性11530_ev.mp4
| 6-3源码阅读ref复杂数据类型的响应性21252_ev.mp4
| 6-4框架实现ref函数-构建复杂数据类型的响应性1059_ev.mp4
| 6-5总结ref复杂数据类型的响应性0148_ev.mp4
| 6-6源码阅读ref简单数据类型的响应性1111_ev.mp4
| 6-7框架实现ref函数-构建简单数据类型的响应性0539_ev.mp4
| 6-8总结ref简单数据类型响应性0245_ev.mp4
| 6-9总结0249_ev.mp4
|
+—{7}-第7章 响应系统 – watch && computed
| 7-10框架实现深入scheduler调度系统实现机制2526_ev.mp4
| 7-11框架实现初步实现watch数据监听器1857_ev.mp4
| 7-12问题分析watch下的依赖收集原则0524_ev.mp4
| 7-13框架实现完成watch数据监听器的依赖收集0331_ev.mp4
| 7-14总结watch数据侦听器0152_ev.mp4
| 7-15总结0207_ev.mp4
| 7-1开篇0104_ev.mp4
| 7-2源码阅读computed的响应性跟踪Vue3源码实现逻辑11553_ev.mp4
| 7-3源码阅读computed的响应性跟踪Vue3源码实现逻辑21636_ev.mp4
| 7-4框架实现构建ComputedRefImpl读取计算属性的值1032_ev.mp4
| 7-5框架实现computed的响应性初见调度器处理脏的状态1021_ev.mp4
| 7-6框架实现computed的缓存性2423_ev.mp4
| 7-7总结computed计算属性0118_ev.mp4
| 7-8源码阅读响应性的数据监听器watch跟踪源码实现逻辑11940_ev.mp4
| 7-9源码阅读响应性的数据监听器watch跟踪源码实现逻辑21713_ev.mp4
|
+—{8}–第8章runtime运行时-运行时核心设计原则
| [8.1]–8-1前言.mp4
| [8.2]–8-2HTMLDOM节点树与虚拟DOM树.mp4
| [8.3]–8-3挂载与更新.mp4
| [8.4]–8-4h函数与render函数.mp4
| [8.5]–8-5运行时核心设计原则.mp4
| [8.6]–8-6总结.mp4
|
+—{9}–第9章runtime运行时-构建h函数,生成Vnode
| [9.10]–9-10框架实现:实现剩余场景Text、Comment、Frag.mp4
| [9.11]–9-11源码阅读:对class和style的增强处理.mp4
| [9.12]–9-12框架实现:完成虚拟节点下的class和style的增强.mp4
| [9.13]–9-13总结.mp4
| [9.1]–9-1前言.mp4
| [9.2]–9-2阅读源码:初见h函数,跟踪Vue3源码实现基础逻辑(1).mp4
| [9.4]–9-4框架实现:构建h函数,处理ELEMENT+TEXT_CHI.mp4
| [9.5]–9-5源码阅读:h函数,跟踪ELEMENT+ARRAY_CHIL.mp4
| [9.6]–9-6框架实现:构建h函数,处理ELEMENT+ARRAY_CH.mp4
| [9.7]–9-7源码阅读:h函数,组件的本质与对应的VNode.mp4
| [9.8]–9-8框架实现:处理组件的VNode.mp4
| [9.9]–9-9源码阅读:h函数,跟踪Text、Comment、Fragm.mp4
|
\—课件资料
vue-next-mini-master.zip
下载地址:
感谢您的来访,获取更多精彩文章请收藏本站。


















