From 3f281d5ea6707324c204b5cad7225e3c5d49554e Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 29 May 2019 10:47:09 +0800 Subject: [PATCH] wip: beforeXXX hooks --- packages/runtime-core/src/createRenderer.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/runtime-core/src/createRenderer.ts b/packages/runtime-core/src/createRenderer.ts index 0b1d0cc1d..b5afeb1cd 100644 --- a/packages/runtime-core/src/createRenderer.ts +++ b/packages/runtime-core/src/createRenderer.ts @@ -365,6 +365,7 @@ export function createRenderer(options: RendererOptions) { instance, needsSetup )) + // beforeMount hook if (instance.bm !== null) { invokeHooks(instance.bm) } @@ -384,6 +385,10 @@ export function createRenderer(options: RendererOptions) { } const prevTree = instance.subTree const nextTree = (instance.subTree = renderComponentRoot(instance)) + // beforeUpdate hook + if (instance.bu !== null) { + invokeHooks(instance.bu) + } patch( prevTree, nextTree, @@ -678,9 +683,14 @@ export function createRenderer(options: RendererOptions) { function unmount(vnode: VNode, doRemove?: boolean) { const instance = vnode.component if (instance != null) { + // beforeUnmount hook + if (instance.bum !== null) { + invokeHooks(instance.bum) + } // TODO teardown component stop(instance.update) unmount(instance.subTree, doRemove) + // unmounted hook if (instance.um !== null) { queuePostFlushCb(instance.um) }