| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- var _ = require('./util')
- var extend = _.extend
- /**
- * The exposed Vue constructor.
- *
- * API conventions:
- * - public API methods/properties are prefiexed with `$`
- * - internal methods/properties are prefixed with `_`
- * - non-prefixed properties are assumed to be proxied user
- * data.
- *
- * @constructor
- * @param {Object} [options]
- * @public
- */
- function Vue (options) {
- this._init(options)
- }
- /**
- * Mixin global API
- */
- extend(Vue, require('./api/global'))
- /**
- * Vue and every constructor that extends Vue has an
- * associated options object, which can be accessed during
- * compilation steps as `this.constructor.options`.
- *
- * These can be seen as the default options of every
- * Vue instance.
- */
- Vue.options = {
- directives : require('./directives'),
- filters : require('./filters'),
- transitions : {},
- components : {},
- elementDirectives: {}
- }
- /**
- * Build up the prototype
- */
- var p = Vue.prototype
- /**
- * $data has a setter which does a bunch of
- * teardown/setup work
- */
- Object.defineProperty(p, '$data', {
- get: function () {
- return this._data
- },
- set: function (newData) {
- this._setData(newData)
- }
- })
- /**
- * Mixin internal instance methods
- */
- extend(p, require('./instance/init'))
- extend(p, require('./instance/events'))
- extend(p, require('./instance/scope'))
- extend(p, require('./instance/compile'))
- extend(p, require('./instance/misc'))
- /**
- * Mixin public API methods
- */
- extend(p, require('./api/data'))
- extend(p, require('./api/dom'))
- extend(p, require('./api/events'))
- extend(p, require('./api/child'))
- extend(p, require('./api/lifecycle'))
- module.exports = _.Vue = Vue
|