From c35fea3d608acbb571ace6693284061e1cadf7ba Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 16 Jan 2020 16:21:37 -0500 Subject: [PATCH] fix(runtime-core): condition for parent node check should be any different nodes fix #622 --- packages/runtime-core/src/renderer.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 99c0ac08679..8d79dfb7867 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -601,10 +601,9 @@ export function createRenderer< // - In the case of a Fragment, we need to provide the actual parent // of the Fragment itself so it can move its children. oldVNode.type === Fragment || - // - In the case of Comment nodes, this is likely a v-if toggle, which - // also needs the correct parent container. - oldVNode.type === Comment || - newVNode.type === Comment || + // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. oldVNode.shapeFlag & ShapeFlags.COMPONENT ? hostParentNode(oldVNode.el!)! @@ -613,7 +612,7 @@ export function createRenderer< fallbackContainer patch( oldVNode, - newChildren[i], + newVNode, container, null, parentComponent,