vue源码阅读理解

2019/8/30:

        天气晴,万里无云的那种。今天,是9月1号开学的前两天,祖国70岁华诞前一个月零两天,后台在改bug,我便有了难得的一点空余。琢磨了下如何利用这段宝贵的时间呢?学英语?学日语?睡会?还是刷会微博?(咋不上天?)所以决定读下vue源码(没啥因果关系)。。之前就读过,是为了找工作,后来不找了就不读了(用意念给自己一巴掌),时隔几个月,emmm...再读!

        随便找一个vue项目,node_modules——vue——src——core(大家都这么找),入口是core下的index.js。可以看到这个文件引入了Vue,index.js内部就是给Vue的原型和Vue添加属性,Vue是重点啊,具体添加什么属性记下来过会儿(北方人爱说儿化音)再看。Vue是从instance下的index.js引入的,可以看到在这个文件里,声明了一个Vue方法,然后是各种mixin(不是迷信的意思,mixin在百度翻译里是“混合类型; 混进; 糅合;”的意思 ),几个mixin,顾名思义,可以看出是初始化、状态、事件、生命周期、渲染,这种分块就觉得离日常开发有点沾边了~开心。Vue方法里,传入了一个options,应该就是写的那个new Vue()里面传的参,方法里还执行了一个this._init()方法,这个方法先mark着先不讨论。再看initMixin方法,是从init.js引入的,找到init.js后发现,export了好多方法,先看要找的那个initMixin方法,其他先不管。在initMixin中,在Vue的prototype中添加了_int()方法,呀!这不就是上文那个“this._init()”方法嘛!这个方法里面做了各种init看起来很重要,得一个一个好好看。initLifecycle()和callHook()都是lifecycle.js里引用的(诶嘛,这文件套了一层又一层的o(╥﹏╥)o)再找lifecycle.js文件,偶然发现lifecycleMixin方法也在这里(之前说过的各种迷信),那把这三个方法都看一下吧:initLifecycle()这个方法实际上是给传入的vue的component设置了一些属性的初始值;lifecycleMixin()这个方法定义了_update()【Vue是通过数据绑定来修改视图的,当某个数据被修改的时候,set方法会让闭包中的Dep调用notify通知所有订阅者Watcher,Watcher通过get方法执行vm._update(vm._render(), hydrating)。】,$forceUpdate()【强制渲染】,$destroy()【删除视图,先调beforeDestroy,解构watchers】,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值