All Vue components are also Vue instances, and so accept the same options object (except for a few root-specific options) and provide the same lifecycle hooks.

定义子类

/src/core/global-api/extend.js

通过 Vue.extend 构建了一个 Vue 的子类。

create-component

/src/core/vdom/create-component.js

render 阶段会调用 create-component ,实际上就是调用 Vue.extend 来实例化一个 Vue 类。

然后

侧面可以印证,作者确实也是把 Vue 看做一个组件来实现的

export function initMixin (Vue: Class<Component>) {}

整个组件系统在不断实例化 Vue 类。

题外话

Vue 有一个强劲的内核

  • Vuex 其实通过实例化一个 Vue 的实例来实现响应式
  • event bus 可以通过实例化 Vue 来实现

siwuxie
528 声望67 粉丝

404