Vue-Vue的加载流程

第一步:

  每一个组件在加载时都会调用内部的render函数把这个组件的template选项的模板解析为一个Javascript对象,而这个对象跟DOM节点对象一摸一样,这个对象的作用就是为了后面的页面渲染。

第二步:

  接下来就是数据劫持代理监听等

  底层有一种设计: 发布/订阅设计   其实就是写了一个watcher函数去订阅(监听) 数据的改变(底层js语法就是defInedproty,v3是proxy)

  当数据发生变化以后:
  当状态(数据)变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较(diff),记录两棵树差异,然后把第二棵树所记录的差异应用到第一棵树所构建的真正的DOM树上(patch),视图就更新了
 
   旧VNode树=>新VNode树=>刷新页面 这个想法是不对的
   旧VNode树 和 生成的新VNode树 比较差异然后更新DOM(刷新页面) 这个就是对的 实现这个过程的代码就是DIFF算法
posted @ 2022-09-08 00:45  前端小白银  阅读(140)  评论(0编辑  收藏  举报