02_vue入口

Vue入口文件是 src/platforms/web/entry-runtime-with-compiler.js

你可以从该文件看到

//引入 vue
import Vue from './runtime/index'

//往vue的原型中加入了一个$mount方法
Vue.prototype.$mount = function...
//导出了vue
export default Vue
runtime/index.js
import Vue from 'core/index'

//往Vue中添加了一些配置
Vue.config.mustUseProp = mustUseProp
....

//这段代码有点眼熟
Vue.prototype.$mount = function...


export default Vue
core/index
import Vue from './instance/index'

//初始化全局API
initGlobalAPI(Vue)


Object.defineProperty(Vue.prototy...

export default Vue
./instance/index
//终于找到了Vue的定义
function Vue (options) {
  if (process.env.NODE_ENV !== 'production' &&
   //Vue必须是通过new的方式来进行创建的
    !(this instanceof Vue)
  ) {
    warn('Vue is a constructor and should be called with the `new` keyword')
  }
  this._init(options)
}
//给vue原型定义方法
initMixin(Vue)
stateMixin(Vue)
eventsMixin(Vue)
lifecycleMixin(Vue)
renderMixin(Vue)

 

Vue初始化的时候都做了什么?往Vue原型中定义了一些方法(instance/index.js),往Vue中定义了静态属性(initGlobalAPI(Vue))

posted @ 2022-04-11 16:36  Mr-Hou88888  阅读(203)  评论(0编辑  收藏  举报