Evan You 10 лет назад
Родитель
Сommit
f96b189504
1 измененных файлов с 4 добавлено и 5 удалено
  1. 4 5
      src/runtime/vdom/component.js

+ 4 - 5
src/runtime/vdom/component.js

@@ -19,20 +19,19 @@ const hooks = {
   },
   },
 
 
   prepatch (oldVnode, vnode) {
   prepatch (oldVnode, vnode) {
-    const old = oldVnode.componentOptions
-    const cur = vnode.componentOptions
-    if (cur.Ctor !== old.Ctor) {
+    const oldCtor = oldVnode.componentOptions.Ctor
+    const { Ctor, propsData, children } = vnode.componentOptions
+    if (Ctor !== oldCtor) {
       // component changed, teardown and create new
       // component changed, teardown and create new
       // TODO: keep-alive?
       // TODO: keep-alive?
       oldVnode.child.$destroy()
       oldVnode.child.$destroy()
       hooks.init(vnode)
       hooks.init(vnode)
     } else {
     } else {
       vnode.child = oldVnode.child
       vnode.child = oldVnode.child
-      const propsData = extractProps(vnode.data)
       vnode.child._updateFromParent(
       vnode.child._updateFromParent(
         propsData, // updated props
         propsData, // updated props
         vnode, // new parent vnode
         vnode, // new parent vnode
-        cur.children // new children
+        children // new children
       )
       )
     }
     }
   },
   },