为了账号安全,请及时绑定邮箱和手机立即绑定

vue源码里依赖收集的时候 Watcher实例怎么赋值到Dep.target上的?

vue源码里依赖收集的时候 Watcher实例怎么赋值到Dep.target上的?

溪墨潺 2019-02-01 17:38:32
看不明白怎么在initData依赖收集的时候  怎么给这个Dep.target赋值个watcher实例的?
查看完整描述

4 回答

?
慕仔8284423

TA贡献1条经验 获得超2个赞

来,咱一步步看。

首先:在执行$mount挂载的时候会调用mountComponent函数,如图:

//img1.sycdn.imooc.com//5e5911e10001319c06370613.jpg

找到lifecycle.js中的mountComponent函数,如图:

//img1.sycdn.imooc.com//5e5911e10001cd5c08680577.jpg

在mountComponent函数中,找到new Watcher(),如图:

//img1.sycdn.imooc.com//5e5912e000012b6005500185.jpg

接下来咱们来看Watcher类的定义中,构造函数内会调用get原型方法,在get方法中调用了pushTarget(this),这个this就是当前的渲染Watcher了,如图:

//img1.sycdn.imooc.com//5e5911e10001740105560657.jpg


查看完整回答
2 反对 回复 2020-02-28
  • 4 回答
  • 0 关注
  • 4365 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信