Vue原理分析

引言

vue最独特的特性之一就是响应式系统,赋予框架重新渲染的能力,其重要组成部分就是变化侦测,当数据变化时会通知视图进行相应的更新。本文主要是分析变化侦测的原理。主要分为两个阶段,一个是初始化,一个是更新视图

初始化阶段

在这里插入图片描述
【分析】:首先创建一个最外层的实例,new一个MVVM
它的内部,有两个方向

  • 一个是创建Observer,劫持/监视data中的所有层次的属性。同时为每个属性创建了另外的对象,Dep,与data中的属性一一对应。
  • 另个方向,同时创建了Compile对象,功能是解析指令属性/大括号表达式。目的是更新显示界面,有个该概念叫初始化视图。调用Updater来初始化视图,updater中有很多更新某个节点的方法。这条线就实现了初始化显示。Compiler在解析指令属性/大括号表达式时除了初始化视图,还为表达式创建对应的Watcher,指定更新的函数。
  • 现在Dep有了,Watcher有了,建立他们之间关系。专业来说就是添加订阅者。Watcher是订阅者,一个订阅者有一个监听,指定了一个回调函数,这个回调函数用来更新界面。 所以我的Dep里有个容器才存watcher,也就是subs,用来保存多个watcher的数组容器。
    至此,初始化阶段结

更新阶段

在这里插入图片描述
【分析】:wm.name=‘Tom’,导致oberser里的set调用,他通知dev(通知变化),dev会通知所有相关的wacther,watcher收到信息后调用回调函数updater去更新界面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值