vue2-principle-learning
Vue2 官方文档:https://v2.cn.vuejs.org/v2/guide/index.html
学习资料(已学完):https://juejin.cn/book/6844733705089449991
源码学习
灵魂提问:学习 Vue 源码,到底是为了学习 Vue 的什么?
我认为主要学习以下几点:
核心模块:
- 响应式原理
- 理解 Object.defineProperty 的用法及其在 Vue 中的应用。
- 学习 Vue 的响应式系统如何实现数据劫持、依赖收集和派发更新。
- 理解 Dep 和 Watcher 的关系及其在依赖收集和更新中的作用。
- 编译原理
- 模板解析:
- 学习如何将模板字符串解析成抽象语法树 (AST)。
- 理解解析过程中如何处理指令、事件、绑定等。
- 优化 AST:
- 学习 Vue 如何通过静态节点标记优化 AST。
- 代码生成:
- 学习如何将优化后的 AST 转换成渲染函数。
- 理解渲染函数的生成和执行过程。
- 模板解析:
- 虚拟 DOM
- 虚拟 DOM 的结构:
- 学习虚拟 DOM 的基本结构 (VNode) 及其实现原理。
- 虚拟 DOM 的创建和更新:
- 理解渲染函数如何生成虚拟 DOM。
- 学习 patch 算法及其如何实现高效的 DOM 更新。
- 虚拟 DOM 的结构:
- 渲染原理
- 初次渲染:
- 学习组件实例化过程,包括数据初始化和渲染函数执行。
- 理解从虚拟 DOM 到真实 DOM 的映射过程。
- 更新渲染:
- 学习响应式数据更新时如何触发组件重新渲染。
- 理解组件的更新机制和 patch 算法如何优化更新过程
- 初次渲染:
其他模块:
- 通信机制:包括 props、events(
$emit
)、slots 等 - 生命周期:理解 Vue 组件的生命周期钩子及其在各个阶段的作用
- 指令系统:学习内置指令的实现原理及其应用。理解自定义指令的编写和使用。
- 插件系统:学习 Vue 的插件机制,如何编写和使用插件。
- 学习 Vue Router 和 Vuex 的原理及其在大型应用中的应用。