From: Evan You Date: Tue, 6 Apr 2021 14:07:16 +0000 (-0400) Subject: wip: beforeDestroy & destroyed compat X-Git-Tag: v3.1.0-beta.1~59^2~72 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65cc6495594b78856f6fe03953484ec1699bd34c;p=thirdparty%2Fvuejs%2Fcore.git wip: beforeDestroy & destroyed compat --- diff --git a/packages/runtime-core/src/compat/deprecations.ts b/packages/runtime-core/src/compat/deprecations.ts index 5ba5d185a9..b002cd0c63 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 06fd0d50f7..b9667ab567 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) {