首页 > 其他 > 详细

vue源码学习

时间:2021-02-02 18:55:38      阅读:16      评论:0      收藏:0      [点我收藏+]

new Vue发生了什么

 

对于 runtime+compile 版本:

  1. 初始化一个 vue 实例的一系列相关环境(watcher,lifecycle, methods等等),
  2. compile:将 template (若有)转化成 render,在 render 过程中每一个模板节点都会生成对应的 _c,也就是执行 createElement 函数
  3.  给实例注册一个渲染 Watcher,渲染 watcher 拥有一个回调,该回调函数会在初始化和每次 vm 实例更新时触发,其中初始化的时候包含下面两步骤:
  4. 利用 render 函数生成 vnode。 从根 vnode开始创建(处理边界条件包括 textVnode,emptyVnode 等等),摊平所有 children vnode,children 拍平成一维数组是为了建立好 tree 的数据结构,因为对于 tree 来说,每个节点的 children 就是一维数组。最终创建成一个 vnode tree。
  5. 开始执行 patch 过程,从根 vnode 起开始创建真实 DOM,递归一整个 vnode tree,递归到最底层的时候开始将 vnode->el 插入到 parent vnode->el。patch 的递归过程是一个自上 而下的过程,但是插入到 DOM 节点的顺序是自下而上,也就是子节点先插入,父节点后插入。 也就是当每一个真实 DOM  插入到父亲 DOM 节点的时候,当前这个 DOM 节点会 是一个构建好的 DOM tree。

vue源码学习

原文:https://www.cnblogs.com/ltog/p/14363339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!