一直想自己来过一遍源码,所以接下来有一个源码学习过程。刚打开vue源码很迷茫,不知道从哪里开始,这里先推荐一个chrome
工具Octotree
,可以直接在github
上看代码结构,都不用下载源码。
直接点到src的core文件夹
中,大概这是核心代码吧,我们就从这里开始。。。。。。
注意⚠️:我把自己的一些理解以注释
的形式写在代码块里啦,有错误请指正
!
/src/core/index.js
// vue的一些核心方法应该在这里
import Vue from './instance/index'
// 初始化vue的一些全局变量
import {
initGlobalAPI } from './global-api/index'
// 从这里获得一个Boolean类型变量,判断是否为ssr
import {
isServerRendering } from 'core/util/env'
import {
FunctionalRenderContext } from 'core/vdom/create-functional-component'
// 执行初始化全局变量
initGlobalAPI(Vue)
// 为vue原型定义isServer属性
Object.defineProperty(Vue.prototype, '$isServer', {
get: isServerRendering
})
// 为Vue原型定义ssrContext属性
Object.defineProperty(Vue.prototype, '$ssrContext', {
get () {
/* istanbul ignore next */
return this.$vnode && this.$vnode.ssrContext
}
})
// expose FunctionalRenderContext for ssr runtime helper installation
Object