vue-3

1-9 从入口开始

分析 Runtime+Compiler 的构建代码。
1.入口文件是 src/platforms/web/entry-runtime-with-complier.js 。这里给Vue的prototype上绑定了一个和编译器相关的方法是$mount
2.然后src/platforms/web/entry-runtime-with-complier.js文件中的Vue其实来自于./runtime/index里面。这里面给Vue定义了很多静态的全局配置、patch、$mount方法。
3.然后./runtime/index中的Vue来自于core/index。
在这里执行了初始化全局API的动作:initGlobalAPI(API)(给Vue挂载了很多静态方法)、等操作。
4.在./runtime/index中的Vue又来自于./instance/index。至此我们就已经看到了Vue的庐山真面目,他其实是用function实现的一个类。之所以使用function没有直接用ES6的类,是因为构造函数有原型链这样的特点,但是如果用class去实现这个效果的话就很难了。
其实我们从./instance.js/index中就可以看到执行了很多MIxin:

initMixin(Vue)
stateMixin(Vue)
eventsMixin(Vue)
lifecycleMixin(Vue)
renderMixin(Vue)

这里的每一个Mixin都是给Vue的原型上绑定了很多方法。

  • initMixin其实就是给原型上挂载了Vue.prototype._init方法
  • stateMixin挂载了Vue.prototype.$set、Vue.prototype.$delete、Vue.prototype.$watch
  • eventsMixin挂载了Vue.prototype.$on、Vue.prototype.$off、Vue.prototype.$once、Vue.prototype.$emit
  • lifecycleMixin挂载了 Vue.prototype._update、Vue.prototype.$forceUpdate、Vue.prototype.$destroy
  • renderMixin挂载了Vue.prototype.$nextTick、Vue.prototype._render
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lar_slw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值