Vue 原始碼閱讀(六)元件化

siwuxie發表於2018-03-08

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 來實現

相關文章