介绍了 Flow、Vue.js 的源码目录设计、Vue.js 的源码构建方式,以及从入口开始分析了 Vue.js 的初始化过程。1-1 课程简介 (06:17)1-2 准备工作 (02:22)1-3 认识 Flow (15:25)1-4 Vue.js 源码目录设计 (05:39)1-5 Vue.js 源码构建 (18:57)1-6 从入口开始 (09:39)
第2章 数据驱动详细讲解了模板数据到 DOM 渲染的过程,从 new Vue 开始,分析了 mount、render、update、patch 等流程。2-1 数据驱动 (03:05)2-2 new Vue 发生了什么 (15:52)2-3 Vue 实例挂载的实现 (15:13)2-4 render (10:32)2-5 Virtual DOM (05:18)2-6 【讨论题】Virtual DOM2-7 createElement (13:31)2-8 update (25:21)
第3章 组件化分析了组件化的实现原理,并且分析了组件周边的原理实现,包括合并配置、生命周期、组件注册、异步组件。3-1 组件化 (01:30)3-2 createComponent (17:33)3-3 patch(上) (18:48)3-4 【讨论题】patch(上)3-5 patch(下) (21:13)3-6 合并配置(上) (14:35)3-7 合并配置(下) (14:02)3-8 生命周期 (18:58)3-9 组件注册(上) (10:03)3-10 组件注册(下) (10:38)3-11 异步组件(工厂函数) (14:43)3-12 异步组件(Promise) (04:56)3-13 异步组件(高级) (11:52)
第4章 深入响应式原理(上)详细讲解了数据的变化如何驱动视图的变化,分析了响应式对象的创建,依赖收集、派发更新的实现过程,一些特殊情况的处理,并对比了计算属性和侦听属性的实现,最后分析了组件更新的过程。4-1 深入响应式原理 (02:55)4-2 响应式对象(上) (13:12)4-3 响应式对象(下) (06:34)4-4 【讨论题】响应式对象(下)4-5 依赖收集(上) (12:16)4-6 依赖收集(下) (14:45)4-7 派发更新(上) (12:06)4-8 派发更新(下) (15:22)4-9 nextTick (16:49)4-10 检测变化的注意事项 (17:25)
第5章 深入响应式原理(下)详细讲解了数据的变化如何驱动视图的变化,分析了响应式对象的创建,依赖收集、派发更新的实现过程,一些特殊情况的处理,并对比了计算属性和侦听属性的实现,最后分析了组件更新的过程。5-1 计算属性 VS 侦听属性(1) (14:49)5-2 计算属性 VS 侦听属性(2) (23:47)5-3 计算属性 VS 侦听属性(3) (07:43)5-4 计算属性 VS 侦听属性(4) (23:15)5-5 计算属性 VS 侦听属性(5) (01:42)5-6 【讨论题】计算属性 VS 侦听属性5-7 组件更新(1) (18:04)5-8 组件更新(2) (16:33)5-9 组件更新(3) (22:18)5-10 原理图 (04:58)5-11 Props --v2.6.11 (一) (10:28)5-12 Props --v2.6.11 (二) (15:16)5-13 Props-- --v2.6.11(三) (16:40)5-14 Props --v2.6.11(四) (10:26)5-15 Props--v2.6.11(五) (09:44)
第6章 编译(上)从编译的入口函数开始,分析了编译的三个核心流程的实现:parse -> optimize -> codegen。6-1 编译 (02:22)6-2 【讨论题】编译6-3 编译入口(上) (11:48)6-4 编译入口(下) (13:27)6-5 parse(1) (08:02)6-6 parse(2) (08:41)6-7 parse(3) (17:11)6-8 parse(4) (05:44)6-9 parse(5) (21:24)6-10 parse(6) (10:37)6-11 parse(7) (36:17)6-12 parse(8) (05:17)6-13 parse(9) (06:38)6-14 parse(10) (05:45)
第7章 编译(下)从编译的入口函数开始,分析了编译的三个核心流程的实现:parse -> optimize -> codegen。7-1 optimize(上) (12:04)7-2 optimize(下) (14:56)7-3 codegen(1) (06:46)7-4 codegen(2) (11:33)7-5 codegen(3) (05:18)7-6 codegen(4) (14:24)
第8章 扩展(上)详细讲解了 event、v-model、slot、keep-alive、transition、transition-group 等常用功能的原理实现,该章节作为一个可扩展章节,未来会分析更多 Vue 提供的特性。8-1 扩展 (01:10)8-2 event(1) (03:31)8-3 event(2) (07:31)8-4 event(3) (09:54)8-5 event(4) (15:10)8-6 event(5) (07:51)8-7 event(6) (13:59)8-8 event(7) (09:45)8-9 event(8) (11:32)8-10 event(9) (06:57)
第9章 扩展(中)详细讲解了 event、v-model、slot、keep-alive、transition、transition-group 等常用功能的原理实现,该章节作为一个可扩展章节,未来会分析更多 Vue 提供的特性。9-1 v-model(1) (02:56)9-2 v-model(2) (15:24)9-3 v-model(3) (09:26)9-4 v-model(4) (17:53)9-5 v-model(5) (10:43)9-6 v-model(6) (06:54)9-7 v-model(7) (09:09)9-8 slot(1) (03:59)9-9 slot(2) (06:48)9-10 slot(3) (11:06)9-11 slot(4) (11:30)9-12 slot(5) (08:40)9-13 slot(6) (11:23)9-14 slot(7) (08:58)9-15 slot(8) (06:16)9-16 slot(9) (05:15)9-17 slot(10) (04:49)
第10章 扩展(下)详细讲解了 event、v-model、slot、keep-alive、transition、transition-group 等常用功能的原理实现,该章节作为一个可扩展章节,未来会分析更多 Vue 提供的特性。10-1 keep-alive(1) (03:08)10-2 keep-alive(2) (13:45)10-3 keep-alive(3) (11:14)10-4 keep-alive(4) (07:08)10-5 keep-alive(5) (08:27)10-6 keep-alive(6) (10:30)10-7 transition(1) (03:06)10-8 transition(2) (08:15)10-9 transition(3) (14:58)10-10 transition(4) (12:29)10-11 transition-group(1) (03:05)10-12 transition-group(2) (12:14)10-13 transition-group(3) (17:01)10-14 transition-group(4) (15:21)
第11章 Vue-Router分析了 Vue-Router 的实现原理,从路由注册开始,分析了路由对象、matcher,并深入分析了整个路径切换的实现过程和细节。11-1 Vue Router (03:40)11-2 路由注册 (10:46)11-3 VueRouter 对象 (09:00)11-4 matcher(1) (12:52)11-5 matcher(2) (05:06)11-6 matcher(3) (12:33)11-7 matcher(4) (05:34)11-8 路径切换(1) (04:04)11-9 路径切换(2) (11:14)11-10 路径切换(3) (12:02)11-11 路径切换(4) (07:09)11-12 路径切换(5) (16:03)11-13 路径切换(6) (09:25)11-14 路径切换(7) (06:55)11-15 路径切换(8) (14:24)11-16 路径切换(9) (12:04)11-17 路径切换(10) (09:53)11-18 路径切换(11) (07:32)
第12章 Vuex分析了 Vuex 的实现原理,深入分析了它的初始化过程,常用 API 以及插件部分的实现。12-1 Vuex介绍 (05:29)12-2 Vuex 初始化(1) (04:57)12-3 Vuex 初始化(2) (05:48)12-4 Vuex 初始化(3) (07:30)12-5 Vuex 初始化(4) (04:36)12-6 Vuex 初始化(5) (08:50)12-7 Vuex 初始化(6) (08:18)12-8 Vuex 初始化(7) (08:25)12-9 Vuex 初始化(8) (07:23)12-10 Vuex 初始化(9) (05:54)12-11 API(1) (10:47)12-12 API(2) (12:39)12-13 API(3) (10:50)12-14 API(4) (04:59)12-15 API(5) (03:38)12-16 插件 (13:50)