From 65cc6495594b78856f6fe03953484ec1699bd34c Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Apr 2021 10:07:16 -0400 Subject: [PATCH] wip: beforeDestroy & destroyed compat --- .../runtime-core/src/compat/deprecations.ts | 12 +++++++++++- packages/runtime-core/src/componentOptions.ts | 18 ++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/packages/runtime-core/src/compat/deprecations.ts b/packages/runtime-core/src/compat/deprecations.ts index 5ba5d185a..b002cd0c6 100644 --- a/packages/runtime-core/src/compat/deprecations.ts +++ b/packages/runtime-core/src/compat/deprecations.ts @@ -20,7 +20,9 @@ export const enum DeprecationTypes { INSTANCE_DESTROY, OPTIONS_DATA_FN, - OPTIONS_DATA_MERGE + OPTIONS_DATA_MERGE, + OPTIONS_BEFORE_DESTROY, + OPTIONS_DESTROYED } type DeprecationData = { @@ -138,6 +140,14 @@ const deprecations: Record = { `Detected conflicting key "${key}" when merging "data" option values. ` + `In Vue 3, data keys are merged shallowly and will override one another.`, link: `https://v3.vuejs.org/guide/migration/data-option.html#mixin-merge-behavior-change` + }, + + [DeprecationTypes.OPTIONS_BEFORE_DESTROY]: { + message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.` + }, + + [DeprecationTypes.OPTIONS_DESTROYED]: { + message: `\`destroyed\` has been renamed to \`unmounted\`.` } } diff --git a/packages/runtime-core/src/componentOptions.ts b/packages/runtime-core/src/componentOptions.ts index 06fd0d50f..b9667ab56 100644 --- a/packages/runtime-core/src/componentOptions.ts +++ b/packages/runtime-core/src/componentOptions.ts @@ -66,6 +66,7 @@ import { VNodeChild } from './vnode' import { callWithAsyncErrorHandling } from './errorHandling' import { UnionToIntersection } from './helpers/typeUtils' import { deepMergeData } from './compat/data' +import { DeprecationTypes, warnDeprecation } from './compat/deprecations' /** * Interface for declaring custom options. @@ -796,19 +797,24 @@ export function applyOptions( if (renderTriggered) { onRenderTriggered(renderTriggered.bind(publicThis)) } - if (__DEV__ && beforeDestroy) { - warn(`\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`) - } if (beforeUnmount) { onBeforeUnmount(beforeUnmount.bind(publicThis)) } - if (__DEV__ && destroyed) { - warn(`\`destroyed\` has been renamed to \`unmounted\`.`) - } if (unmounted) { onUnmounted(unmounted.bind(publicThis)) } + if (__COMPAT__) { + if (beforeDestroy) { + __DEV__ && warnDeprecation(DeprecationTypes.OPTIONS_BEFORE_DESTROY) + onBeforeUnmount(beforeDestroy.bind(publicThis)) + } + if (destroyed) { + __DEV__ && warnDeprecation(DeprecationTypes.OPTIONS_DESTROYED) + onUnmounted(destroyed.bind(publicThis)) + } + } + if (isArray(expose)) { if (!asMixin) { if (expose.length) {