0
点赞
收藏
分享

微信扫一扫

vue源码 - 初始化静态成员

sunflower821 2022-01-28 阅读 80

回顾下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
在这里插入图片描述

举报

相关推荐

0 条评论