框架-Vue

Vue
1.熟练使用Vue的API、生命周期、钩子函数

2.MVVM框架设计理念

  • 视图
  • 数据模型
  • 数据双向绑定

3.Vue双向绑定实现原理、Diff算法的内部实现

  • View(dom) ? ViewModel ? Model(javascript)
  • Model通过vm数据绑定(Date Binding)来更新View代码(updateView)
  • M ? V
  • Model的动态变化 通过vm 动态更新到View。
    (1.VM实现了一个数据监听器(Observe)进行数据劫持,当数据改变的时候通知订阅者(Watcher)[“diff算法在watcher的update方法里面。”],Watcher接收到需要更新的数据,更新View(视图)。
    (2.实现了一个Compile(解析指令),将模版中的变量替换成数据{{****}},并绑定更新函数,添加数据订阅者(Watcher)。一旦数据变动,接收通知改变视图。

4.Vue的事件机制
在这里插入图片描述

5.从template转换成真实DOM的实现机制

baseCompile首先会将模板template进行parse得到一个AST语法树,再通过optimize做一些优化,最后通过generate得到render以及staticRenderFns。

  • parse解析得到ast树
  • 将AST树进行优化
  • 优化的目标:生成模板AST树,检测不需要进行DOM改变的静态子树。
  • 一旦检测到这些静态树,我们就能做以下这些事情:
    (1.把它们变成常数,这样我们就再也不需要每次重新渲染时创建新的节点了。
    (2.在patch的过程中直接跳过。

optimize

  • optimize的主要作用是标记static静态节点,这是Vue在编译过程中的一处优化,后面当update更新界面时,会有一个patch的过程,diff算法会直接跳过静态节点,从而减少了比较的过程,优化了patch的性能。

generate

  • generate是将AST语法树转化成render funtion字符串的过程,得到结果是render的字符串以及staticRenderFns字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值