INSTANCE_DESTROY,
OPTIONS_DATA_FN,
- OPTIONS_DATA_MERGE
+ OPTIONS_DATA_MERGE,
+ OPTIONS_BEFORE_DESTROY,
+ OPTIONS_DESTROYED
}
type DeprecationData = {
`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\`.`
}
}
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.
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) {