|
|
@@ -44,6 +44,10 @@ var cid = 1
|
|
|
exports.extend = function (extendOptions) {
|
|
|
extendOptions = extendOptions || {}
|
|
|
var Super = this
|
|
|
+ var isFirstExtend = Super.cid === 0
|
|
|
+ if (isFirstExtend && extendOptions._Ctor) {
|
|
|
+ return extendOptions._Ctor
|
|
|
+ }
|
|
|
var name = extendOptions.name || Super.options.name
|
|
|
var Sub = createClass(name || 'VueComponent')
|
|
|
Sub.prototype = Object.create(Super.prototype)
|
|
|
@@ -65,6 +69,10 @@ exports.extend = function (extendOptions) {
|
|
|
if (name) {
|
|
|
Sub.options.components[name] = Sub
|
|
|
}
|
|
|
+ // cache constructor
|
|
|
+ if (isFirstExtend) {
|
|
|
+ extendOptions._Ctor = Sub
|
|
|
+ }
|
|
|
return Sub
|
|
|
}
|
|
|
|