Vue.prototype._init = function (options?: Object) {
// a flag to avoid this being observed
vm._isVue = true
// merge options
if (options && options._isComponent) {
// optimize internal component instantiation
// since dynamic options merging is pretty slow, and none of the
// internal component options needs special treatment.
initInternalComponent(vm, options)
} else {
vm.$options = mergeOptions(
resolveConstructorOptions(vm.constructor),
options || {},
vm
)
}
/* istanbul ignore else */
if (process.env.NODE_ENV !== 'production') {
initProxy(vm)
} else {
vm._renderProxy = vm
}
// expose real self
vm._self = vm
initLifecycle(vm)
initEvents(vm)
initRender(vm)
callHook(vm, 'beforeCreate')
initInjections(vm) // resolve injections before data/props
initState(vm)
initProvide(vm) // resolve provide after data/props
callHook(vm, 'created')
if (vm.$options.el) {
vm.$mount(vm.$options.el)
}
}
initProxy
、遮断要素内の他のコンポーネントからのアクセスデータへの薬剤の範囲。
initLifecycle
コンポーネント間の親子関係を確立し、現在のインスタンス上で識別いくつかのプロパティおよびライフサイクルを追加します。このような$children
として:$refs
、、_isMounted
およびにそう。
initEvents
イベント「バインドする機能」ライフサイクルフック名=オブジェクト:店舗@hookに使用に加えて。このような$on
として:、$emit
そして上のようにします。
initRender
初期化のために$slots
、$attrs
、$listeners
initInjections
初期化inject
、サブアセンブリの拡張バージョンに相当する通信のより深いレベル、のための一般的なアセンブリprops
。より多くの開発のためのコンポーネントライブラリ。
initState
:多くのオプションが含まれ、初期化された要約されているprops
、methods
、data
、computed
とwatch
ように。
initProvide
初期化 provide
vm.$mount
取付け例。