Vue2.x源码分析(二):Vue实例挂载的实现

Vue源码分析 + 逐行注释 Github地址

Vue实例挂载阶段,这里只分析web平台的实现,web平台的入口文件是src/platforms/web/entry-runtime-with-compiler.js,在此文件中Vue通过$mount方法进行实例挂载。

Vue挂载阶段都做了什么?

src/platforms/web/entry-runtime-with-compiler.js文件$mount方法定义之前,$mount已经在runtime(src/platforms/web/runtime/index.js文件)里定义了一遍,在该文件里刚开始就对·$mount做一个缓存,缓存为mount变量,方便之后使用。

Vue2.x源码分析(一):new Vue发生了什么

Vue源码分析 + 逐行注释 Github地址

new Vue()做了什么?

首先,Vue会判断当前的this是否是Vue实例,如果是则会调用this._init()初始化Vue配置,如果不是则抛出警告

代码src/core/instance/index.js

1
2
3
4
5
6
7
8
function Vue(options) {
if (process.env.NODE_ENV !== 'production' &&
!(this instanceof Vue)
) {
warn('Vue is a constructor and should be called with the `new` keyword')
}
this._init(options)
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×