Vue3源码调试-第三篇

前言

上两篇已经调试完packages/runtime-dom/src/index.ts下的createApp函数的第一行了,接下来我们看下一行

injectNativeTagCheck

首先说下这个__DEV__估计也是定义在dev.js下,又或者是哪里的,这里控制台输出是true,那我估计是因为现在是Dev环境下,所以为true

完了就要进入injectNativeTagCheck方法了

这里一看便知是给我们的app下的Config属性加多一个isNativeTag的属性,他的value是 一个方法,如代码所示,writable:false,意味着value不可更改

那其实可以从函数名称就能得知他的作用了 injectxxx,注入啥啥啥,下一个也是

injectCompilerOptionsCheck

isRuntimeOnly

映入眼帘的首先是这个方法,并且这里是整个方法的关键

这个isRuntimeOnly的方法位于packages/runtime-dom/src/components.ts下

它又依赖于complie变量

可以看到是未定义的,那猜测isRunTimeOnly的结果是true,看下调试如何

实在是没想到,输出结果是false,也就意味着compile在某个地方偷偷赋值了,有点可恶,经过我一顿搜索,找到了他的出处

packages/runtime-core/src/components.ts

packages.vue/src/index.ts

 这个文件又被打包进global.js了,也就是只要引入global.js 就会触发这个赋值,好吧!

紧接着,下一步又从app解构出了mount,我决定在下一篇继续讲

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值