| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- var mergeOptions = require('../util').mergeOptions
- /**
- * The main init sequence. This is called for every
- * instance, including ones that are created from extended
- * constructors.
- *
- * @param {Object} options - this options object should be
- * the result of merging class
- * options and the options passed
- * in to the constructor.
- */
- exports._init = function (options) {
- options = options || {}
- this.$el = null
- this.$parent = options._parent
- this.$root = options._root || this
- this.$ = {} // child vm references
- this.$$ = {} // element references
- this._watchers = [] // all watchers as an array
- this._directives = [] // all directives
- // a flag to avoid this being observed
- this._isVue = true
- // events bookkeeping
- this._events = {} // registered callbacks
- this._eventsCount = {} // for $broadcast optimization
- this._eventCancelled = false // for event cancellation
- // block instance properties
- this._isBlock = false
- this._blockStart = // @type {CommentNode}
- this._blockEnd = null // @type {CommentNode}
- // lifecycle state
- this._isCompiled =
- this._isDestroyed =
- this._isReady =
- this._isAttached =
- this._isBeingDestroyed = false
- this._unlinkFn = null
- // children
- this._children = []
- this._childCtors = {}
- // transcluded components that belong to the parent.
- // need to keep track of them so that we can call
- // attached/detached hooks on them.
- this._transCpnts = []
- this._host = options._host
- // push self into parent / transclusion host
- if (this.$parent) {
- this.$parent._children.push(this)
- }
- if (this._host) {
- this._host._transCpnts.push(this)
- }
- // props used in v-repeat diffing
- this._new = true
- this._reused = false
- // merge options.
- options = this.$options = mergeOptions(
- this.constructor.options,
- options,
- this
- )
- // set data after merge.
- this._data = options.data || {}
- // initialize data observation and scope inheritance.
- this._initScope()
- // setup event system and option events.
- this._initEvents()
- // call created hook
- this._callHook('created')
- // if `el` option is passed, start compilation.
- if (options.el) {
- this.$mount(options.el)
- }
- }
|