diff --git a/src/generators/dom/visitors/Component.ts b/src/generators/dom/visitors/Component.ts index 7fe0c27c53..e474eefd60 100644 --- a/src/generators/dom/visitors/Component.ts +++ b/src/generators/dom/visitors/Component.ts @@ -252,20 +252,20 @@ export default function visitComponent( ${beforecreate} `); - if (!state.parentNode) block.builders.unmount.addLine(`${name}._fragment.unmount();`); - block.builders.destroy.addLine(`${name}.destroy( false );`); - - const targetNode = state.parentNode || '#target'; - const anchorNode = state.parentNode ? 'null' : 'anchor'; - block.builders.create.addLine(`${name}._fragment.create();`); + block.builders.claim.addLine( `${name}._fragment.claim( ${state.parentNodes} );` ); + block.builders.mount.addLine( - `${name}._fragment.mount( ${targetNode}, ${anchorNode} );` + `${name}._fragment.mount( ${state.parentNode || '#target'}, ${state.parentNode ? 'null' : 'anchor'} );` ); + if (!state.parentNode) block.builders.unmount.addLine(`${name}._fragment.unmount();`); + + block.builders.destroy.addLine(`${name}.destroy( false );`); + // event handlers node.attributes.filter((a: Node) => a.type === 'EventHandler').forEach((handler: Node) => { const usedContexts: string[] = [];