回顾下vue构造函数的查找过程
- package.json(dev指令的配置文件是config.js, 指令最后设置了TARGET: web-full-dev)
- config.js文件中查找web-full-dev的配置项,发现入口是以下文件
web/entry-runtime-with-compiler.js
- 在web/entry-runtime-with-compiler.js文件中查找 发现同级别下的 runtime/index 处引入了vue
- 在 runtime/index里又通过core/index引入的vue,在core/index处初始化了vue的一些静态方法,然后又通过同级下的/instance/index引入了vue,最终发现是在/instance/index文件 中定义的vue的构造函数
core/index中的初始化静态方法initGlobalAPI(Vue)
- 此方法位于core/golbal-api/index文件中
- 在进入上面文件之前先在runtime/index里面vue.config上面赋值了几个关于判断是否是表单元素的一些方法
core/global-api/index
-
initUse
-
initMixin
-
mergeOptions 主要功能就是把 parent 和 child 这两个对象根据⼀些合并策略,合并成⼀个新对象并返回。先递归把 extends 和 mixixns 合并到 parent 上,然后遍历parent ,调⽤ mergeField ,然后再遍历 child ,如果 key 不在 perent 的⾃⾝属性上,则调⽤ mergeField 。mergeField 函数它对不同的 key 有着不同的合并策略。
-
initExtend
-
根据传入的options 返回组件的一个构造函数
-initAssetRegisters