Hello, Boswell!

渲染器的作用

  • 渲染器至少知道vnode与存储它的容器;

  • 控制部分组件生命周期钩子的调用;(挂载,卸载

  • 多端渲染的桥梁;

  • 与异步渲染有关;

  • 最核心的diff算法;

  • 将各种类型的vnode挂载为真实的DOM;

  • 挂载:创建DOM,设置相关属性,时间等,不会插入页面中;

工作阶段

  • 安装(mount: 不存在老vnode时;
  • 补丁(patch: 以最小的开销完成DOM更新;

挂载普通元素标签

  • mount函数将vnode渲染成真实dom,根据vnode类型不同需要的挂载方式不同;

挂载纯文本

挂载Fragment

  • 没有最外层容器元素的容器组件;
  • vnode的tag为空;

挂载Portal

  • 可以将组件渲染到任何地方的组件;
  • vnode的tag为挂载点元素的tag;

挂载有状态的组件

  • 实例化->vnode->挂载->将自身真实dom的引用设置到实例属性$el;

挂载函数式组件(也就是无状态组件)

  • 是一个没有状态,不需要实例化的函数;

异步渲染

  • vue默认时异步渲染的方式,触发数据更新后,会将运行渲染任务,通过nextTick函数放到任务队列中,所以
Last Updated:
Contributors: Boswell, Boswell, 季明壮, mingzhuang.ji