From: Evan You Date: Fri, 23 Jul 2021 03:18:15 +0000 (-0400) Subject: refactor: adjust custom element hmr, fix tests X-Git-Tag: v3.2.0-beta.5~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=231dafd55a3003601e7746bc0d4177aacbf00fc6;p=thirdparty%2Fvuejs%2Fcore.git refactor: adjust custom element hmr, fix tests --- diff --git a/packages/runtime-core/src/hmr.ts b/packages/runtime-core/src/hmr.ts index 45f25ba513..a7ccbe9c2d 100644 --- a/packages/runtime-core/src/hmr.ts +++ b/packages/runtime-core/src/hmr.ts @@ -7,7 +7,7 @@ import { ClassComponent, isClassComponent } from './component' -import { nextTick, queueJob } from './scheduler' +import { queueJob, queuePostFlushCb } from './scheduler' import { extend } from '@vue/shared' import { warn } from './warning' @@ -124,7 +124,7 @@ function reload(id: string, newComp: ComponentOptions | ClassComponent) { // on patch. hmrDirtyComponents.add(component) // 3. Make sure to unmark the component after the reload. - nextTick(() => { + queuePostFlushCb(() => { hmrDirtyComponents.delete(component) }) } @@ -135,7 +135,9 @@ function reload(id: string, newComp: ComponentOptions | ClassComponent) { if (instance.ceReload) { // custom element + hmrDirtyComponents.add(component) instance.ceReload() + hmrDirtyComponents.delete(component) } else if (instance.parent) { // 4. Force the parent instance to re-render. This will cause all updated // components to be unmounted and re-mounted. Queue the update so that we