四、vue源码1 ---kkb

知识要点

  • vue工作机制
  • vue响应式原理
  • 依赖收集与追踪
  • 编译compile

Vue工作机制

在new Vue() 之后。Vue会调用进行初始化,会初始化生命周期、事件、props、methods、data、computed 与 watch 等。其中最重要的是通过 Object.defineProperty 设置 setter 与 getter,用来实现 响应式 以及 依赖收集

初始化之后调用 $mount 挂载组件

简化版:

编译

编译模块分为三个阶段

1、parse:使用正则解析template中的vue指令(v-xxx)变量等等,形成抽象语法树AST

2、optimize:标记一些静态节点,用作后面的性能优化,在diff的时候直接略过

3、generate:把第一步生成的AST转化为渲染函数 render function

响应式

这一块是vue最核心的内容,初始化的时候通过defineProperty定义对象getter、setter,设置通知机制

当编译生成的渲染函数被实际渲染的时候,会触发getter进行依赖收集,在数据变化的时候,触发setter进行更新

虚拟dom

Virtual DOM 是react首创,Vue2开始支持,就是用JavaScript对象来描述dom结构,数据修改的时候,我们先修改虚拟dom中的数据,然后数组做diff,最后再汇总所有的diff,力求做最少的dom操作,毕竟js里对比很快,而真实的dom操作太慢

更新视图

数据修改触发setter,然后监听器会通知进行修改,通过对比新旧vdom树,得到最小修改,就是patch,然后只需要把这些差异修改即可

Vue2

猜你喜欢

转载自www.cnblogs.com/haishen/p/11783374.html
今日推荐