From 93634b113715424f4996034a5d3aeca824c459b6 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 21 Oct 2022 20:18:32 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20vueComponent,=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D1=8C=20=D0=BF=D0=BE=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20?= =?UTF-8?q?=D0=B8=D0=B5=D1=80=D0=B0=D1=80=D1=85=D0=B8=D1=8E=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/vueComponent.js | 35 ++++++++++++++++++------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/client/components/vueComponent.js b/client/components/vueComponent.js index 67f8c2e..5ac69ad 100644 --- a/client/components/vueComponent.js +++ b/client/components/vueComponent.js @@ -17,7 +17,7 @@ export default function(componentClass) { } } } else if (prop === '_props') { - comp['props'] = obj[prop]; + comp.props = obj[prop]; } } else {//usual prop data[prop] = obj[prop]; @@ -26,23 +26,28 @@ export default function(componentClass) { comp.data = () => _.cloneDeep(data); //methods - const classProto = Object.getPrototypeOf(obj); - const classMethods = Object.getOwnPropertyNames(classProto); const methods = {}; const computed = {}; - for (const method of classMethods) { - const desc = Object.getOwnPropertyDescriptor(classProto, method); - if (desc.get) {//has getter, computed - computed[method] = {get: desc.get}; - if (desc.set) - computed[method].set = desc.set; - } else if ( ['beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'activated',//life cycle hooks - 'deactivated', 'beforeUnmount', 'unmounted', 'errorCaptured', 'renderTracked', 'renderTriggered',//life cycle hooks - 'setup'].includes(method) ) { - comp[method] = obj[method]; - } else if (method !== 'constructor') {//usual - methods[method] = obj[method]; + + let classProto = Object.getPrototypeOf(obj); + while (classProto) { + const classMethods = Object.getOwnPropertyNames(classProto); + for (const method of classMethods) { + const desc = Object.getOwnPropertyDescriptor(classProto, method); + if (desc.get) {//has getter, computed + computed[method] = {get: desc.get}; + if (desc.set) + computed[method].set = desc.set; + } else if ( ['beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'activated',//life cycle hooks + 'deactivated', 'beforeUnmount', 'unmounted', 'errorCaptured', 'renderTracked', 'renderTriggered',//life cycle hooks + 'setup'].includes(method) ) { + comp[method] = obj[method]; + } else if (method !== 'constructor') {//usual + methods[method] = obj[method]; + } } + + classProto = Object.getPrototypeOf(classProto); } comp.methods = methods; comp.computed = computed;