vue 源码详解(零):Vue 源码流程图
最近在研究 Vue 的源码, 整理博客, 结果想到的、看到的内容实在是太多了, 不知道从何写起, 故整理了一个大致的流程图,根据这个顺序进行一一整理。
为了表达出关键信息,流程图中主流程和子流程有不严谨的地方,后续会针对每一个子流程进行逐一剖析细化。
Vue 大致的流程都在图上做了标记, 大致如下( Vue 实例用 vm 表示 ) :
- 声明 Vue 构造函数;
- 构建 Vue 原型对象,丰富 vm 实例上的属性和方法;
- 构建 Vue 静态方法和属性, 使得 Vue 可以在不生成实例的情况下,具备一些方便用户曹组的接口;
- 等待用户调用 Vue,生成 vm 实例;
- 调用 vm 上的初始化方法, 初始化组件的生命周期、数据、方法,进行模板的解析、编译, 生成 AST 模板,然后根据 AST 模板生成虚拟 DOM、 render 函数, render 函数最终将虚拟DOM 编译成真实 DOM, 并挂载到页面上的组件占位符。
其实重要的流程都在第 5 步, 前 4 步是 Vue 的声明、构造阶段, 都是为了第 5 步做准备。