适合人群:想从“会用”进阶到“懂原理”的前端开发者

这门课主要解决的是前端开发中“知其然不知其所以然”的痛点。如果你在日常工作中只会调用 Vue3 的 API,遇到 Vue3 的报错或性能瓶颈时只能查文档,那这门课就是为你准备的。它不教你如何写业务组件,而是带你从源码设计者的视角,去理解 Vue 3 核心机制(如响应式原理、组件生命周期、虚拟 DOM Diff 算法等)的底层逻辑。课程内容从实际工作场景切入,旨在帮助开发者建立起扎实的框架底层认知,不仅能看懂源码,更能反向优化业务代码,解决实际工作中的疑难杂症。

学习建议:先过一遍核心模块,再对照源码阅读

建议基础较好的同学直接从响应式系统开始切入。首先,你需要熟悉 Vue 3 的基本使用方式,理解 Proxy 与 Object.defineProperty 的区别,以及 ref、reactive 的基本用法。接着,重点攻克“响应式系统”这一核心模块,这是理解 Vue 3 源码的基石。在观看视频时,不要只做笔记,建议一边看讲解,一边在电脑上搭建调试环境,跟随讲师的节奏,从入口文件开始逐步追踪代码执行流程。重点理解 Vue 3 是如何实现数据劫持、依赖收集和派发更新的,这部分学通了,后续看组件渲染和 diff 算法就会轻松很多。

学完能独立做什么:能读懂源码,能封装工具库

学完这门课,你将具备独立阅读 Vue 3 官方源码的能力,能够清晰地画出框架的执行流程图,理解各个模块之间的依赖关系。更重要的是,你可以基于对原理的掌握,独立开发出轻量级的组件库或工具函数,比如手写一个简易的响应式系统、实现一个自定义的指令或者封装一个符合项目规范的请求库。这种从底层到应用的贯通能力,是区分普通工程师和高级工程师的关键,能让你在面对复杂业务逻辑时更加游刃有余。

资料与练习:结合源码阅读,动手调试是最好的学习方式

资料包中包含了课程所需的源码文件和高清视频教程。在使用资料时,不要只看视频不动手。请务必将资料中的源码文件拉取到本地,使用 VS Code 配合 Chrome 的 DevTools 进行断点调试。建议先通读一遍课程讲解,然后尝试在源码中搜索关键词,找到对应的逻辑实现。通过“看视频讲解 + 找代码位置 + 断点验证”的三步走策略,才能真正将知识内化。只有在反复的调试和修改中,你才能真正掌握 Vue 3 源码的设计精髓。

课程目录

├── 第1章课程导读/ │ └── [ 43M] 1-1课程导读.mp4
 ├── 第2章框架设计前瞻-框架设计中的一些基本概念/ │ ├── [120M] 2-10运行时+编译时.mp4
 │ ├── [ 29M] 2-11什么是副作用.mp4
 │ ├── [ 33M] 2-12Vue3框架设计概述.mp4
 │ ├── [6.7M] 2-14总结.mp4
 │ ├── [ 13M] 2-1前言.mp4
 │ ├── [ 43M] 2-2编程范式之命令式编程.mp4
 │ ├── [ 30M] 2-3编程范式之声明式编程.mp4
 │ ├── [ 50M] 2-4命令式VS声明式.mp4
 │ ├── [ 48M] 2-5企业应用的开发与设计原则.mp4
 │ ├── [ 47M] 2-6为什么说框架的设计过程其实是一个不断取舍的过程?.mp4
 │ ├── [ 34M] 2-7.vue中的html是真实的html吗?.mp4
 │ ├── [118M] 2-8什么是运行时?.mp4
 │ └── [ 53M] 2-9什么是编译时?.mp4
 ├── 第3章Vue3源码结构-搭建框架雏形/ │ ├── [ 88M] 3-10模块打包器:rollup.mp4
 │ ├── [ 38M] 3-11初见框架雏形:配置路径映射.mp4
 │ ├── [10.0M] 3-12总结.mp4
 │ ├── [9.9M] 3-1前言.mp4
 │ ├── [ 89M] 3-2探索源码设计:Vue3源码设计大解析.mp4
 │ ├── [ 67M] 3-3创建测试实例:在Vue源码中运行测试实例.mp4
 │ ├── [105M] 3-4跟踪解析运行行为:为vue开启SourceMap.mp4
 │ ├── [ 42M] 3-5授人以鱼:如何针对源码进行debugger.mp4
 │ ├── [ 71M] 3-6授人以渔:如何阅读源码.mp4
 │ ├── [ 43M] 3-7开始搭建自己的框架:创建vue-next-mini.mp4
 │ ├── [ 70M] 3-8为框架进行配置:导入ts.mp4
 │ └── [ 44M] 3-9引入代码格式化工具:prettier让你的代码结构更加规范.mp4
 ├── 第4章响应系统-响应系统的核心设计原则/ │ ├── [ 13M] 4-1前言.mp4
 │ ├── [ 34M] 4-2JS的程序性.mp4
 │ ├── [ 37M] 4-3如何让你的程序变得更加&ldquo_聪明&rdquo_?.mp4
 │ ├── [ 58M] 4-4vue2的响应性核心API:Object.definePr.mp4
 │ ├── [ 63M] 4-5Object.defineProperty在设计层的缺陷.mp4
 │ ├── [101M] 4-6vue3的响应性核心API:proxy.mp4
 │ ├── [107M] 4-7proxy的最佳拍档:Reflect&mdash_拦截js.mp4
 │ └── [ 11M] 4-8总结.mp4
 ├── 第5章响应系统-初见reactivity模块/ │ ├── [ 40M] 5-10框架实现:构建track依赖收集函数.mp4
 │ ├── [ 26M] 5-11框架实现:构建trigger触发依赖.mp4
 │ ├── [ 27M] 5-12总结:单一依赖的reactive.mp4
 │ ├── [ 33M] 5-13功能升级:响应数据对应多个effect.mp4
 │ ├── [ 57M] 5-14框架实现:构建Dep模块,处理一对多的依赖关系.mp4
 │ ├── [ 37M] 5-15reactive函数的局限性.mp4
 │ ├── [9.9M] 5-16总结.mp4
 │ ├── [ 13M] 5-1前言.mp4
 │ ├── [211M] 5-2源码阅读:reactive的响应性,跟踪Vue3源码实现逻.mp4
 │ ├── [162M] 5-3源码阅读:reactive的响应性,跟踪Vue3源码实现逻.mp4
 │ ├── [ 89M] 5-4框架实现:构建reactive函数,获取proxy实例.mp4
 │ ├── [ 66M] 5-5框架实现:什么是WeakMap?它和Map有什么区别?.mp4
 │ ├── [ 66M] 5-6框架实现:createGetter&amp_&amp_cr.mp4
 │ ├── [ 22M] 5-7热更新的开发时:提升开发体验.mp4
 │ ├── [ 49M] 5-8框架实现:构建effect函数,生成ReactiveEff.mp4
 │ └── [ 42M] 5-9框架实现:track&amp_&amp_trigger.mp4
 ├── 第6章响应系统-ref的响应性/ │ ├── [7.6M] 6-1前言.mp4
 │ ├── [130M] 6-2源码阅读:ref复杂数据类型的响应性(1).mp4
 │ ├── [107M] 6-3源码阅读:ref复杂数据类型的响应性(2).mp4
 │ ├── [ 76M] 6-4框架实现:ref函数-构建复杂数据类型的响应性.mp4
 │ ├── [ 12M] 6-5总结:ref复杂数据类型的响应性.mp4
 │ ├── [ 89M] 6-6源码阅读:ref简单数据类型的响应性.mp4
 │ ├── [ 39M] 6-7框架实现:ref函数-构建简单数据类型的响应性.mp4
 │ ├── [ 19M] 6-8总结:ref简单数据类型响应性.mp4
 │ └── [ 19M] 6-9总结.mp4
 └── 第7章响应系统-watch&amp_&amp_computed/ ├── [179M] 7-10框架实现:深入scheduler调度系统实现机制.mp4
 ├── [131M] 7-11框架实现:初步实现watch数据监听器.mp4
 ├── [ 39M] 7-12问题分析:watch下的依赖收集原则.mp4
 ├── [ 24M] 7-13框架实现:完成watch数据监听器的依赖收集.mp4
 ├── [ 13M] 7-14总结:watch数据侦听器【更多it资源 www.】.mp4
 ├── [ 15M] 7-15总结.mp4
 ├── [7.4M] 7-1开篇.mp4
 ├── [143M] 7-2源码阅读:computed的响应性,跟踪Vue3源码实现逻.mp4
 ├── [178M] 7-3源码阅读:computed的响应性,跟踪Vue3源码实现逻.mp4
 ├── [ 73M] 7-4框架实现:构建ComputedRefImpl,读取计算属性.mp4
 ├── [ 71M] 7-5框架实现:computed的响应性:初见调度器,处理脏的状.mp4
 ├── [217M] 7-6框架实现:computed的缓存性.mp4
 ├── [8.8M] 7-7总结:computed计算属性.mp4
 ├── [203M] 7-8源码阅读:响应性的数据监听器watch,跟踪源码实现逻辑(.mp4
 └── [179M] 7-9源码阅读:响应性的数据监听器watch,跟踪源码实现逻辑(.mp4
 └──第8章runtime运行时-运行时核心设计原则/ ├── [ 20M] 8-1前言.mp4
 ├── [ 72M] 8-2HTMLDOM节点树与虚拟DOM树.mp4
 ├── [ 91M] 8-3挂载与更新.mp4
 ├── [ 42M] 8-4h函数与render函数.mp4
 ├── [106M] 8-5运行时核心设计原则.mp4
 └── [3.8M] 8-6总结.mp4
 └──第9章runtime运行时-构建h函数,生成Vnode/ ├── [ 17M] 9-10框架实现:实现剩余场景Text、Comment、Frag.mp4
 ├── [ 44M] 9-11源码阅读:对class和style的增强处理.mp4
 ├── [ 30M] 9-12框架实现:完成虚拟节点下的class和style的增强.mp4
 ├── [ 12M] 9-13总结.mp4
 ├── [9.5M] 9-1前言.mp4
 ├── [ 56M] 9-2阅读源码:初见h函数,跟踪Vue3源码实现基础逻辑(1).mp4
 ├── [100M] 9-4框架实现:构建h函数,处理ELEMENT+TEXT_CHI.mp4
 ├── [ 66M] 9-5源码阅读:h函数,跟踪ELEMENT+ARRAY_CHIL.mp4
 ├── [ 23M] 9-6框架实现:构建h函数,处理ELEMENT+ARRAY_CH.mp4
 ├── [ 55M] 9-7源码阅读:h函数,组件的本质与对应的VNode.mp4
 ├── [ 31M] 9-8框架实现:处理组件的VNode.mp4
 └── [ 43M] 9-9源码阅读:h函数,跟踪Text、Comment、Fragm.mp4
 ├──第10章runtime运行时-构建renderer渲染器/ │ ├── [ 17M] 10-10框架实现:删除元素,ELEMENT节点的卸载操作.mp4
 │ ├── [ 78M] 10-11源码阅读:class属性和其他属性的区分挂载.mp4
 │ ├── [ 64M] 10-12深入属性挂载:HTMLAttributes和DOMPr.mp4
 │ ├── [ 28M] 10-13框架实现:区分处理ELEMENT节点的各种属性挂载.mp4
 │ ├── [ 64M] 10-14源码阅读:ELEMENT节点下,style属性的挂载和.mp4
 │ ├── [ 31M] 10-15框架实现:ELEMENT节点下,style属性的挂载和.mp4
 │ ├── [111M] 10-16源码阅读:ELEMENT节点下,事件的挂载和更新.mp4
 │ ├── [ 51M] 10-17深入事件更新:vueeventinvokers.mp4
 │ ├── [ 35M] 10-18框架实现:ELEMENT节点下,事件的挂载和更新.mp4
 │ ├── [9.4M] 10-19局部总结:ELEMENT节点的挂载、更新、props打.mp4
 │ ├── [ 13M] 10-1前言.mp4
 │ ├── [ 36M] 10-20源码阅读:renderer渲染器下,Text节点的挂载.mp4
 │ ├── [ 28M] 10-21框架实现:renderer渲染器下,Text节点的挂载.mp4
 │ ├── [ 15M] 10-22源码阅读:renderer渲染器下,Comment节点.mp4
 │ ├── [ 17M] 10-23框架实现:renderer渲染器下,Comment节点.mp4
 │ ├── [ 39M] 10-24源码阅读:renderer渲染器下,Fragment节.mp4
 │ ├── [ 41M] 10-25框架实现:renderer渲染器下,Fragment节.mp4
 │ ├── [ 16M] 10-26总结.mp4
 │ ├── [110M] 10-2源码阅读:初见render函数,ELEMENT节点的挂载.mp4
 │ ├── [ 89M] 10-3框架实现:构建renderer基本架构.mp4
 │ ├── [ 43M] 10-4框架实现:基于renderer完成ELEMENT节点挂载.mp4
 │ ├── [ 49M] 10-5框架实现:合并渲染架构,得到可用的render函数.mp4
 │ ├── [7.9M] 10-6源码阅读:渲染更新,ELEMENT节点的更新操作.mp4.ts │ ├── [ 92M] 10-7框架实现:渲染更新,ELEMENT节点的更新实现.mp4
 │ ├── [ 39M] 10-8源码阅读:新旧节点不同元素时,ELEMENT节点的更新操.mp4
 │ └── [ 27M] 10-9框架实现:处理新旧节点不同元素时,ELEMENT节点的更.mp4
 ├──第11章runtime运行时-组件的设计原理与渲染方案/ │ ├── [ 41M] 11-10框架实现:组件生命周期回调处理逻辑.mp4
 │ ├── [ 40M] 11-11源码阅读:生命回调钩子中访问响应性数据.mp4
 │ ├── [ 12M] 11-12框架实现:生命回调钩子中访问响应性数据.mp4
 │ ├── [ 54M] 11-13源码阅读:响应性数据改变,触发组件的响应性变化.mp4
 │ ├── [ 19M] 11-14框架实现:响应性数据改变,触发组件的响应性变化.mp4
 │ ├── [ 59M] 11-15源码阅读:compositionAPI,setup函数.mp4
 │ ├── [ 27M] 11-16框架实现:compositionAPI,setup函数.mp4
 │ ├── [ 15M] 11-17总结.mp4
 │ ├── [ 89M] 11-2源码阅读:无状态基础组件挂载逻辑.mp4
 │ ├── [ 69M] 11-3源码阅读:无状态基础组件挂载逻辑.mp4
 │ ├── [ 67M] 11-4框架实现:完成无状态基础组件的挂载逻辑.mp4
 │ ├── [ 37M] 11-5源码阅读:无状态基础组件更新逻辑.mp4
 │ ├── [ 11M] 11-6局部总结:无状态组件的挂载、更新、卸载总结.mp4
 │ ├── [ 85M] 11-7源码阅读:有状态的响应性组件挂载逻辑.mp4
 │ └── [ 18M] 11-8框架实现:有状态的响应性组件挂载逻辑.mp4
 ├──第12章runtime运行时-diff算法核心实现/ │ ├── [8.0M] 12-10框架实现:场景四:旧节点多于新节点时的diff比对.mp4
 │ ├── [ 32M] 12-11局部总结:前四种diff场景的总结与乱序场景.mp4
 │ ├── [ 61M] 12-12前置知识:场景五:最长递增子序列.mp4
 │ ├── [171M] 12-13源码逻辑:场景五:求解最长递增子序列.mp4
 │ ├── [108M] 12-14源码阅读:场景五:乱序下的diff比对.mp4
 │ ├── [150M] 12-15源码阅读:场景五:乱序下的diff比对.mp4
 │ ├── [ 35M] 12-16框架实现:场景五:乱序下的diff比对.mp4
 │ ├── [ 29M] 12-17总结.mp4
 │ ├── [ 19M] 12-1前言.mp4
 │ ├── [ 24M] 12-2前置知识:VNode虚拟节点key属性的作用.mp4
 │ ├── [ 74M] 12-3源码阅读:场景一:自前向后的diff对比.mp4
 │ ├── [ 39M] 12-4框架实现:场景一:自前向后的diff对比.mp4
 │ ├── [ 36M] 12-5源码阅读:场景二:自后向前的diff对比.mp4
 │ ├── [ 15M] 12-6框架实现:场景二:自后向前的diff对比.mp4
 │ ├── [ 62M] 12-7源码阅读:场景三:新节点多余旧节点时的diff比对.mp4
 │ ├── [ 15M] 12-8框架实现:场景三:新节点多余旧节点时的diff比对.mp4
 │ └── [ 21M] 12-9源码阅读:场景四:旧节点多于新节点时的diff比对.mp4
 ├──第13章compiler编译器-编译时核心设计原则/ │ ├── [ 41M] 13-1前言.mp4
 │ ├── [ 18M] 13-2模板编译的核心流程.mp4
 │ ├── [ 29M] 13-3抽象语法树-AST.mp4
 │ ├── [ 37M] 13-4AST转化为JavaScriptAST,获取codege.mp4
 │ ├── [ 28M] 13-5JavaScriptAST生成render函数代码.mp4
 │ └── [6.4M] 13-6总结.mp4
 ├── 第14章compiler编译器-构建compile编译器/ │ ├── [133M] 14-10框架实现:转化JavaScriptAST,构建深度优先.mp4
 │ ├── [149M] 14-11框架实现:构建transformXXX方法,转化对应节.mp4
 │ ├── [ 63M] 14-12框架实现:处理根节点的转化,生成JavaScriptA.mp4
 │ ├── [ 70M] 14-13扩展知识:render函数的生成方案.mp4
 │ ├── [257M] 14-14源码阅读:编译器第三步:生成render函数.mp4
 │ ├── [ 38M] 14-15框架实现:构建CodegenContext上下文对象.mp4
 │ ├── [193M] 14-16框架实现:解析JavaScriptAST,拼接rend.mp4
 │ ├── [ 31M] 14-17框架实现:新建compat模块,把render转化为f.mp4
 │ ├── [ 15M] 14-18总结.mp4
 │ ├── [ 11M] 14-1前言.mp4
 │ ├── [100M] 14-2扩展知识:JavaScript与有限自动状态机.mp4
 │ ├── [ 48M] 14-3扩展知识:扫描tokens构建AST结构的方案.mp4
 │ ├── [411M] 14-4源码阅读:编译器第一步:依据模板,生成AST抽象语法树.mp4
 │ ├── [ 58M] 14-5框架实现:构建parse方法,生成context实例.mp4
 │ ├── [264M] 14-6框架实现:构建有限自动状态机解析模板,扫描token生成.mp4
 │ ├── [ 38M] 14-7框架实现:生成AST,构建测试【更多it资源 www.】.mp4
 │ ├── [ 53M] 14-8扩展知识:AST到JavaScriptAST的转化策略和.mp4
 │ └── [365M] 14-9源码阅读:编译器第二步:转化AST,得到JavaScri.mp4
 ├── 第15章compiler编译器-深入编辑器处理逻辑(困难)/ │ ├── [161M] 15-10困难-基于编辑器的指令(v-xx)处理:AST解析逻辑.mp4
 │ ├── [335M] 15-11困难-基于编辑器的指令(v-xx)处理:JavaScr.mp4
 │ ├── [ 38M] 15-12 基于编辑器的指令(v-xx)处理:JavaScript AST ,transform 的转化逻辑.mp4
 │ ├── [116M] 15-13基于编辑器的指令(v-xx)处理:生成render函数.mp4
 │ ├── [7.6M] 15-14总结.mp4
 │ ├── [ 12M] 15-1前言.mp4
 │ ├── [ 55M] 15-2响应性数据的编辑器处理:响应性数据的处理逻辑.mp4
 │ ├── [ 52M] 15-3响应性数据的编辑器处理:AST解析逻辑.mp4
 │ ├── [ 38M] 15-4响应性数据的编辑器处理:JavaScriptAST转化逻.mp4
 │ ├── [ 22M] 15-5响应性数据的编辑器处理:render转化逻辑分析.mp4
 │ ├── [ 66M] 15-6响应性数据的编辑器处理:generate生成render.mp4
 … 其余 

10 项略,目录共 210 项