我们刚分析完不同的dist
文件的作用。
坏蛋Dan:vue runtime源码分析学习——day2:runtime-only和runtime-compiler的区别
现在我们来确定后续的分析流程。
现在由于现在我们测试的是runtime
的代码,所以要么用dist
的文件到浏览器调试,要么基于单元测试,模拟runtime
的场景。
这里我们还是模拟runtime
的场景,在浏览器上用dist
的包调试可以说是本末倒置了,因为最开始我就是不喜欢调试dist
之后的文件才研究直接调试typescript
代码的方法。另一方面,vscode
和浏览器来回切换是一件很累的事情,即使有一键切屏(在家莫得双屏)。
话不多说,我们来确定下后续要怎么分析。
测试用例的话就直接用官方包里自带的吧,如果到时候有些不适合我们再补充。
学习嘛,就是要都过一遍,所以接下来分析是会带上编译相关的代码,而不是单纯的runtime
。当然,如果是compiler-dom
和compiler-core
里的方法就直接绕过。
我们的入口index.ts
已经分析过了(虽然基本也没啥分析)。所以这里入口自然就是@vue/runtime-dom
[1]的createApp
这个方法。
那么顺着这个入口,我们一步一步分析,这个过程涉及到下面几个包:
vue
,也就是主包runtime-dom
runtime-core
reactivity
PS
:ssr
相关的也会绕过。
可能还会涉及到其它的包,这个后面遇到了再说。
之前想过这几个包分开来独立分析,但是这样分析的时候可能会缺少包之间的联系,会有些没有没脑的。
不过有个点需要提前说明,这里runtime
里的方法不仅仅是提供给template
的,更多的是我们开发者常用的api
,这些是作用于script
代码的。
所以后面分析的时候会用辅助函数和api
区分这两者。
patch
等;另一部分则是我们开发者调用的api
以及render function
中涉及到的runtime api
。编辑于 2023-02-17 15:35・IP 属地广东