Vue.js设计与实现(0-0)

51 阅读3分钟

主要内容

  1. 框架设计的核心要素以及框架设计过程中要做出的权衡;
  2. 三种常见的虚拟DOM的diff算法;
  3. 组件化的实现与Vue.js内建组件的原理;
  4. 服务端渲染、客户端渲染、同构渲染之间的差异,以及同构渲染的原理。

6篇18章

一、框架设计概览

  1. 命令式和声明式两种范式的差异,二者对框架设计的影响;虚拟DOM的性能状况;运行时和编译时的相关知识 —— Vue.js 3.0 是一个运行时+编译时的框架。
  2. 设计框架时应该考虑的内容:用户的开发体验、控制框架代码的体积、Tree-Shaking的工作机制、框架产物、特性开关、错误处理、TypeScript支持等。
  3. 设计思路及各模块之间如何协作。

二、响应系统

  1. 响应系统实现机制:副作用函数、计算属性和watch的实现原理。
  2. 使用Proxy代理JavaScript对象的方式:Proxy、Reflect以及JavaScript对象的工作原理。
  3. ref的概念,基于ref实现原始值的响应式方案,使用ref解决响应丢失问题。

三、渲染器

  1. 渲染器与响应系统的关系,两者如何配合工作完成页面更新,渲染器中的一些基本名词和概念,自定义渲染器的实现与应用。
  2. 渲染器挂载与更新的实现原理:子节点的处理、属性的处理和事件的处理。当挂载或更新组件类型的虚拟节点时,组件生命周期函数的处理。
  3. 简单diff算法的工作原理。
  4. 双端diff算法的工作原理。
  5. 快速diff算法的工作原理。

四、组件化

  1. 组件的实现原理:组件自身状态的初始化,由自身状态变化引起的组件自更新;组件的外部状态(props),由外部状态变化引起的被动更新,以及组件事件和插槽的实现原理。
  2. 异步组件和函数式组件的工作机制和实现原理。异步组件:超时与错误处理、延迟展示Loading组件、加载重试等。
  3. 三个内建组件的实现原理:KeepAlive、Teleport和Transition。

五、编译器

  1. Vue.js模板编译器的工作流程,parser的实现原理与状态机,AST的转换与插件化架构,生成渲染函数代码的具体实现。
  2. 如何实现一个符合WHATWG组织的HTML解析规范的解析器:解析器的文本模式、文本模式对解析器的影响,如何使用递归下降算法构造模板AST。如何根据规范解码字符引用。
  3. Vue.js 3.0中模板编译优化的相关内容:Block树的更新机制、动态节点的收集、静态提升、预字符串化、缓存内联事件处理函数、v-once等。

六、服务端渲染

  1. Vue.js 同构渲染的原理:CSR、SSR以及同构渲染等方案的优缺点。Vue.js进行服务端渲染和客户端激活的原理,编写同构代码时的注意事项。