chore: remove v3.vuejs.org references

This commit is contained in:
Evan You 2022-02-07 13:13:26 +08:00
parent 48de8a42b7
commit ce34d9114e
6 changed files with 84 additions and 84 deletions

View File

@ -1,6 +1,6 @@
<h1 align="center">Sponsors &amp; Backers</h1> <h1 align="center">Sponsors &amp; Backers</h1>
Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of the awesome sponsors and backers listed in this file. If you'd like to join them, please consider [ sponsor Vue's development](https://staging.vuejs.org/sponsor/). Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of the awesome sponsors and backers listed in this file. If you'd like to join them, please consider [ sponsor Vue's development](https://vuejs.org/sponsor/).
<p align="center"> <p align="center">
<a target="_blank" href="https://sponsors.vuejs.org/backers.svg"> <a target="_blank" href="https://sponsors.vuejs.org/backers.svg">

View File

@ -23,10 +23,10 @@ Also note: Vue 3 does not support IE11 ([RFC](https://github.com/vuejs/rfcs/blob
## Sponsors ## Sponsors
Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome [backers](https://github.com/vuejs/core/blob/main/BACKERS.md). If you'd like to join them, please consider [ sponsor Vue's development](https://staging.vuejs.org/sponsor/). Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome [backers](https://github.com/vuejs/core/blob/main/BACKERS.md). If you'd like to join them, please consider [ sponsor Vue's development](https://vuejs.org/sponsor/).
<p align="center"> <p align="center">
<a target="_blank" href="https://staging.vuejs.org/sponsor/"> <a target="_blank" href="https://vuejs.org/sponsor/">
<img alt="sponsors" src="https://sponsors.vuejs.org/sponsors.svg"> <img alt="sponsors" src="https://sponsors.vuejs.org/sponsors.svg">
</a> </a>
</p> </p>

View File

@ -36,7 +36,7 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
`Platform-native elements with "is" prop will no longer be ` + `Platform-native elements with "is" prop will no longer be ` +
`treated as components in Vue 3 unless the "is" value is explicitly ` + `treated as components in Vue 3 unless the "is" value is explicitly ` +
`prefixed with "vue:".`, `prefixed with "vue:".`,
link: `https://v3.vuejs.org/guide/migration/custom-elements-interop.html` link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
}, },
[CompilerDeprecationTypes.COMPILER_V_BIND_SYNC]: { [CompilerDeprecationTypes.COMPILER_V_BIND_SYNC]: {
@ -44,7 +44,7 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
`.sync modifier for v-bind has been removed. Use v-model with ` + `.sync modifier for v-bind has been removed. Use v-model with ` +
`argument instead. \`v-bind:${key}.sync\` should be changed to ` + `argument instead. \`v-bind:${key}.sync\` should be changed to ` +
`\`v-model:${key}\`.`, `\`v-model:${key}\`.`,
link: `https://v3.vuejs.org/guide/migration/v-model.html` link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
}, },
[CompilerDeprecationTypes.COMPILER_V_BIND_PROP]: { [CompilerDeprecationTypes.COMPILER_V_BIND_PROP]: {
@ -60,12 +60,12 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
`that appears before v-bind in the case of conflict. ` + `that appears before v-bind in the case of conflict. ` +
`To retain 2.x behavior, move v-bind to make it the first attribute. ` + `To retain 2.x behavior, move v-bind to make it the first attribute. ` +
`You can also suppress this warning if the usage is intended.`, `You can also suppress this warning if the usage is intended.`,
link: `https://v3.vuejs.org/guide/migration/v-bind.html` link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
}, },
[CompilerDeprecationTypes.COMPILER_V_ON_NATIVE]: { [CompilerDeprecationTypes.COMPILER_V_ON_NATIVE]: {
message: `.native modifier for v-on has been removed as is no longer necessary.`, message: `.native modifier for v-on has been removed as is no longer necessary.`,
link: `https://v3.vuejs.org/guide/migration/v-on-native-modifier-removed.html` link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
}, },
[CompilerDeprecationTypes.COMPILER_V_IF_V_FOR_PRECEDENCE]: { [CompilerDeprecationTypes.COMPILER_V_IF_V_FOR_PRECEDENCE]: {
@ -75,7 +75,7 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
`access to v-for scope variables. It is best to avoid the ambiguity ` + `access to v-for scope variables. It is best to avoid the ambiguity ` +
`with <template> tags or use a computed property that filters v-for ` + `with <template> tags or use a computed property that filters v-for ` +
`data source.`, `data source.`,
link: `https://v3.vuejs.org/guide/migration/v-if-v-for.html` link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
}, },
[CompilerDeprecationTypes.COMPILER_NATIVE_TEMPLATE]: { [CompilerDeprecationTypes.COMPILER_NATIVE_TEMPLATE]: {
@ -86,7 +86,7 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
[CompilerDeprecationTypes.COMPILER_INLINE_TEMPLATE]: { [CompilerDeprecationTypes.COMPILER_INLINE_TEMPLATE]: {
message: `"inline-template" has been removed in Vue 3.`, message: `"inline-template" has been removed in Vue 3.`,
link: `https://v3.vuejs.org/guide/migration/inline-template-attribute.html` link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
}, },
[CompilerDeprecationTypes.COMPILER_FILTERS]: { [CompilerDeprecationTypes.COMPILER_FILTERS]: {
@ -94,7 +94,7 @@ const deprecationData: Record<CompilerDeprecationTypes, DeprecationData> = {
`filters have been removed in Vue 3. ` + `filters have been removed in Vue 3. ` +
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` + `The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
`Use method calls or computed properties instead.`, `Use method calls or computed properties instead.`,
link: `https://v3.vuejs.org/guide/migration/filters.html` link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
} }
} }

View File

@ -76,7 +76,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
message: message:
`The global app bootstrapping API has changed: vm.$mount() and the "el" ` + `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
`option have been removed. Use createApp(RootComponent).mount() instead.`, `option have been removed. Use createApp(RootComponent).mount() instead.`,
link: `https://v3.vuejs.org/guide/migration/global-api.html#mounting-app-instance` link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
}, },
[DeprecationTypes.GLOBAL_MOUNT_CONTAINER]: { [DeprecationTypes.GLOBAL_MOUNT_CONTAINER]: {
@ -84,21 +84,21 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`Vue detected directives on the mount container. ` + `Vue detected directives on the mount container. ` +
`In Vue 3, the container is no longer considered part of the template ` + `In Vue 3, the container is no longer considered part of the template ` +
`and will not be processed/replaced.`, `and will not be processed/replaced.`,
link: `https://v3.vuejs.org/guide/migration/mount-changes.html` link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
}, },
[DeprecationTypes.GLOBAL_EXTEND]: { [DeprecationTypes.GLOBAL_EXTEND]: {
message: message:
`Vue.extend() has been removed in Vue 3. ` + `Vue.extend() has been removed in Vue 3. ` +
`Use defineComponent() instead.`, `Use defineComponent() instead.`,
link: `https://v3.vuejs.org/api/global-api.html#definecomponent` link: `https://vuejs.org/api/general.html#definecomponent`
}, },
[DeprecationTypes.GLOBAL_PROTOTYPE]: { [DeprecationTypes.GLOBAL_PROTOTYPE]: {
message: message:
`Vue.prototype is no longer available in Vue 3. ` + `Vue.prototype is no longer available in Vue 3. ` +
`Use app.config.globalProperties instead.`, `Use app.config.globalProperties instead.`,
link: `https://v3.vuejs.org/guide/migration/global-api.html#vue-prototype-replaced-by-config-globalproperties` link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
}, },
[DeprecationTypes.GLOBAL_SET]: { [DeprecationTypes.GLOBAL_SET]: {
@ -117,7 +117,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
message: message:
`Vue.observable() has been removed. ` + `Vue.observable() has been removed. ` +
`Use \`import { reactive } from "vue"\` from Composition API instead.`, `Use \`import { reactive } from "vue"\` from Composition API instead.`,
link: `https://v3.vuejs.org/api/basic-reactivity.html` link: `https://vuejs.org/api/reactivity-core.html#reactive`
}, },
[DeprecationTypes.GLOBAL_PRIVATE_UTIL]: { [DeprecationTypes.GLOBAL_PRIVATE_UTIL]: {
@ -144,12 +144,12 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
message: message:
`config.keyCodes has been removed. ` + `config.keyCodes has been removed. ` +
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`, `In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
link: `https://v3.vuejs.org/guide/migration/keycode-modifiers.html` link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
}, },
[DeprecationTypes.CONFIG_PRODUCTION_TIP]: { [DeprecationTypes.CONFIG_PRODUCTION_TIP]: {
message: `config.productionTip has been removed.`, message: `config.productionTip has been removed.`,
link: `https://v3.vuejs.org/guide/migration/global-api.html#config-productiontip-removed` link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
}, },
[DeprecationTypes.CONFIG_IGNORED_ELEMENTS]: { [DeprecationTypes.CONFIG_IGNORED_ELEMENTS]: {
@ -162,7 +162,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
} }
return msg return msg
}, },
link: `https://v3.vuejs.org/guide/migration/global-api.html#config-ignoredelements-is-now-config-iscustomelement` link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
}, },
[DeprecationTypes.CONFIG_WHITESPACE]: { [DeprecationTypes.CONFIG_WHITESPACE]: {
@ -194,14 +194,14 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
[DeprecationTypes.INSTANCE_DESTROY]: { [DeprecationTypes.INSTANCE_DESTROY]: {
message: `vm.$destroy() has been removed. Use app.unmount() instead.`, message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
link: `https://v3.vuejs.org/api/application-api.html#unmount` link: `https://vuejs.org/api/application.html#app-unmount`
}, },
[DeprecationTypes.INSTANCE_EVENT_EMITTER]: { [DeprecationTypes.INSTANCE_EVENT_EMITTER]: {
message: message:
`vm.$on/$once/$off() have been removed. ` + `vm.$on/$once/$off() have been removed. ` +
`Use an external event emitter library instead.`, `Use an external event emitter library instead.`,
link: `https://v3.vuejs.org/guide/migration/events-api.html` link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
}, },
[DeprecationTypes.INSTANCE_EVENT_HOOKS]: { [DeprecationTypes.INSTANCE_EVENT_HOOKS]: {
@ -211,14 +211,14 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`should be changed to @vnode-${event.slice(5)}. ` + `should be changed to @vnode-${event.slice(5)}. ` +
`From JavaScript, use Composition API to dynamically register lifecycle ` + `From JavaScript, use Composition API to dynamically register lifecycle ` +
`hooks.`, `hooks.`,
link: `https://v3.vuejs.org/guide/migration/vnode-lifecycle-events.html` link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
}, },
[DeprecationTypes.INSTANCE_CHILDREN]: { [DeprecationTypes.INSTANCE_CHILDREN]: {
message: message:
`vm.$children has been removed. Consider refactoring your logic ` + `vm.$children has been removed. Consider refactoring your logic ` +
`to avoid relying on direct access to child components.`, `to avoid relying on direct access to child components.`,
link: `https://v3.vuejs.org/guide/migration/children.html` link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
}, },
[DeprecationTypes.INSTANCE_LISTENERS]: { [DeprecationTypes.INSTANCE_LISTENERS]: {
@ -227,12 +227,12 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`included in vm.$attrs and it is no longer necessary to separately use ` + `included in vm.$attrs and it is no longer necessary to separately use ` +
`v-on="$listeners" if you are already using v-bind="$attrs". ` + `v-on="$listeners" if you are already using v-bind="$attrs". ` +
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`, `(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
link: `https://v3.vuejs.org/guide/migration/listeners-removed.html` link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
}, },
[DeprecationTypes.INSTANCE_SCOPED_SLOTS]: { [DeprecationTypes.INSTANCE_SCOPED_SLOTS]: {
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`, message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
link: `https://v3.vuejs.org/guide/migration/slots-unification.html` link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
}, },
[DeprecationTypes.INSTANCE_ATTRS_CLASS_STYLE]: { [DeprecationTypes.INSTANCE_ATTRS_CLASS_STYLE]: {
@ -247,21 +247,21 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`If you are binding $attrs to a non-root element and expecting ` + `If you are binding $attrs to a non-root element and expecting ` +
`class/style to fallthrough on root, you will need to now manually bind ` + `class/style to fallthrough on root, you will need to now manually bind ` +
`them on root via :class="$attrs.class".`, `them on root via :class="$attrs.class".`,
link: `https://v3.vuejs.org/guide/migration/attrs-includes-class-style.html` link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
}, },
[DeprecationTypes.OPTIONS_DATA_FN]: { [DeprecationTypes.OPTIONS_DATA_FN]: {
message: message:
`The "data" option can no longer be a plain object. ` + `The "data" option can no longer be a plain object. ` +
`Always use a function.`, `Always use a function.`,
link: `https://v3.vuejs.org/guide/migration/data-option.html` link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
}, },
[DeprecationTypes.OPTIONS_DATA_MERGE]: { [DeprecationTypes.OPTIONS_DATA_MERGE]: {
message: (key: string) => message: (key: string) =>
`Detected conflicting key "${key}" when merging data option values. ` + `Detected conflicting key "${key}" when merging data option values. ` +
`In Vue 3, data keys are merged shallowly and will override one another.`, `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` link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
}, },
[DeprecationTypes.OPTIONS_BEFORE_DESTROY]: { [DeprecationTypes.OPTIONS_BEFORE_DESTROY]: {
@ -279,7 +279,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`If current usage is intended, you can disable the compat behavior and ` + `If current usage is intended, you can disable the compat behavior and ` +
`suppress this warning with:` + `suppress this warning with:` +
`\n\n configureCompat({ ${DeprecationTypes.WATCH_ARRAY}: false })\n`, `\n\n configureCompat({ ${DeprecationTypes.WATCH_ARRAY}: false })\n`,
link: `https://v3.vuejs.org/guide/migration/watch.html` link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
}, },
[DeprecationTypes.PROPS_DEFAULT_THIS]: { [DeprecationTypes.PROPS_DEFAULT_THIS]: {
@ -287,21 +287,21 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`props default value function no longer has access to "this". The compat ` + `props default value function no longer has access to "this". The compat ` +
`build only offers access to this.$options.` + `build only offers access to this.$options.` +
`(found in prop "${key}")`, `(found in prop "${key}")`,
link: `https://v3.vuejs.org/guide/migration/props-default-this.html` link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
}, },
[DeprecationTypes.CUSTOM_DIR]: { [DeprecationTypes.CUSTOM_DIR]: {
message: (legacyHook: string, newHook: string) => message: (legacyHook: string, newHook: string) =>
`Custom directive hook "${legacyHook}" has been removed. ` + `Custom directive hook "${legacyHook}" has been removed. ` +
`Use "${newHook}" instead.`, `Use "${newHook}" instead.`,
link: `https://v3.vuejs.org/guide/migration/custom-directives.html` link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
}, },
[DeprecationTypes.V_ON_KEYCODE_MODIFIER]: { [DeprecationTypes.V_ON_KEYCODE_MODIFIER]: {
message: message:
`Using keyCode as v-on modifier is no longer supported. ` + `Using keyCode as v-on modifier is no longer supported. ` +
`Use kebab-case key name modifiers instead.`, `Use kebab-case key name modifiers instead.`,
link: `https://v3.vuejs.org/guide/migration/keycode-modifiers.html` link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
}, },
[DeprecationTypes.ATTR_FALSE_VALUE]: { [DeprecationTypes.ATTR_FALSE_VALUE]: {
@ -311,7 +311,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`use \`null\` or \`undefined\` instead. If the usage is intended, ` + `use \`null\` or \`undefined\` instead. If the usage is intended, ` +
`you can disable the compat behavior and suppress this warning with:` + `you can disable the compat behavior and suppress this warning with:` +
`\n\n configureCompat({ ${DeprecationTypes.ATTR_FALSE_VALUE}: false })\n`, `\n\n configureCompat({ ${DeprecationTypes.ATTR_FALSE_VALUE}: false })\n`,
link: `https://v3.vuejs.org/guide/migration/attribute-coercion.html` link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
}, },
[DeprecationTypes.ATTR_ENUMERATED_COERCION]: { [DeprecationTypes.ATTR_ENUMERATED_COERCION]: {
@ -324,7 +324,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`If the usage is intended, ` + `If the usage is intended, ` +
`you can disable the compat behavior and suppress this warning with:` + `you can disable the compat behavior and suppress this warning with:` +
`\n\n configureCompat({ ${DeprecationTypes.ATTR_ENUMERATED_COERCION}: false })\n`, `\n\n configureCompat({ ${DeprecationTypes.ATTR_ENUMERATED_COERCION}: false })\n`,
link: `https://v3.vuejs.org/guide/migration/attribute-coercion.html` link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
}, },
[DeprecationTypes.TRANSITION_CLASSES]: { [DeprecationTypes.TRANSITION_CLASSES]: {
@ -338,7 +338,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`for styling, you can disable the compat behavior and suppress this ` + `for styling, you can disable the compat behavior and suppress this ` +
`warning with:` + `warning with:` +
`\n\n configureCompat({ ${DeprecationTypes.TRANSITION_GROUP_ROOT}: false })\n`, `\n\n configureCompat({ ${DeprecationTypes.TRANSITION_GROUP_ROOT}: false })\n`,
link: `https://v3.vuejs.org/guide/migration/transition-group.html` link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
}, },
[DeprecationTypes.COMPONENT_ASYNC]: { [DeprecationTypes.COMPONENT_ASYNC]: {
@ -356,7 +356,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`\n\n configureCompat({ ${DeprecationTypes.COMPONENT_ASYNC}: false })\n` `\n\n configureCompat({ ${DeprecationTypes.COMPONENT_ASYNC}: false })\n`
) )
}, },
link: `https://v3.vuejs.org/guide/migration/async-components.html` link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
}, },
[DeprecationTypes.COMPONENT_FUNCTIONAL]: { [DeprecationTypes.COMPONENT_FUNCTIONAL]: {
@ -372,7 +372,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`been disabled.` `been disabled.`
) )
}, },
link: `https://v3.vuejs.org/guide/migration/functional-components.html` link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
}, },
[DeprecationTypes.COMPONENT_V_MODEL]: { [DeprecationTypes.COMPONENT_V_MODEL]: {
@ -397,7 +397,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`"update:modelValue" event. You can update the usage and then ${configMsg}` `"update:modelValue" event. You can update the usage and then ${configMsg}`
) )
}, },
link: `https://v3.vuejs.org/guide/migration/v-model.html` link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
}, },
[DeprecationTypes.RENDER_FUNCTION]: { [DeprecationTypes.RENDER_FUNCTION]: {
@ -406,7 +406,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`You can opt-in to the new API with:` + `You can opt-in to the new API with:` +
`\n\n configureCompat({ ${DeprecationTypes.RENDER_FUNCTION}: false })\n` + `\n\n configureCompat({ ${DeprecationTypes.RENDER_FUNCTION}: false })\n` +
`\n (This can also be done per-component via the "compatConfig" option.)`, `\n (This can also be done per-component via the "compatConfig" option.)`,
link: `https://v3.vuejs.org/guide/migration/render-function-api.html` link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
}, },
[DeprecationTypes.FILTERS]: { [DeprecationTypes.FILTERS]: {
@ -414,7 +414,7 @@ export const deprecationData: Record<DeprecationTypes, DeprecationData> = {
`filters have been removed in Vue 3. ` + `filters have been removed in Vue 3. ` +
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` + `The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
`Use method calls or computed properties instead.`, `Use method calls or computed properties instead.`,
link: `https://v3.vuejs.org/guide/migration/filters.html` link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
}, },
[DeprecationTypes.PRIVATE_APIS]: { [DeprecationTypes.PRIVATE_APIS]: {
@ -534,7 +534,7 @@ export function validateCompatConfig(
`Deprecation config "${key}" is compiler-specific and you are ` + `Deprecation config "${key}" is compiler-specific and you are ` +
`running a runtime-only build of Vue. This deprecation should be ` + `running a runtime-only build of Vue. This deprecation should be ` +
`configured via compiler options in your build setup instead.\n` + `configured via compiler options in your build setup instead.\n` +
`Details: https://v3.vuejs.org/guide/migration/migration-build.html` `Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
) )
} }
} else { } else {

View File

@ -20,17 +20,17 @@ export type LegacyConfig = {
devtools?: boolean devtools?: boolean
/** /**
* @deprecated use `config.isCustomElement` instead * @deprecated use `config.isCustomElement` instead
* https://v3.vuejs.org/guide/migration/global-api.html#config-ignoredelements-is-now-config-iscustomelement * https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement
*/ */
ignoredElements?: (string | RegExp)[] ignoredElements?: (string | RegExp)[]
/** /**
* @deprecated * @deprecated
* https://v3.vuejs.org/guide/migration/keycode-modifiers.html * https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html
*/ */
keyCodes?: Record<string, number | number[]> keyCodes?: Record<string, number | number[]>
/** /**
* @deprecated * @deprecated
* https://v3.vuejs.org/guide/migration/global-api.html#config-productiontip-removed * https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed
*/ */
productionTip?: boolean productionTip?: boolean
} }

View File

@ -169,11 +169,11 @@ The following workflow walks through the steps of migrating an actual Vue 2 app
- If you are using `vue-router`, note `<transition>` and `<keep-alive>` will not work with `<router-view>` until you upgrade to `vue-router` v4. - If you are using `vue-router`, note `<transition>` and `<keep-alive>` will not work with `<router-view>` until you upgrade to `vue-router` v4.
6. Update [`<transition>` class names](https://v3.vuejs.org/guide/migration/transition.html). This is the only feature that does not have a runtime warning. You can do a project-wide search for `.*-enter` and `.*-leave` CSS class names. 6. Update [`<transition>` class names](https://v3-migration.vuejs.org/breaking-changes/transition.html). This is the only feature that does not have a runtime warning. You can do a project-wide search for `.*-enter` and `.*-leave` CSS class names.
[Example commit](https://github.com/vuejs/vue-hackernews-2.0/commit/d300103ba622ae26ac26a82cd688e0f70b6c1d8f) [Example commit](https://github.com/vuejs/vue-hackernews-2.0/commit/d300103ba622ae26ac26a82cd688e0f70b6c1d8f)
7. Update app entry to use [new global mounting API](https://v3.vuejs.org/guide/migration/global-api.html#a-new-global-api-createapp). 7. Update app entry to use [new global mounting API](https://v3-migration.vuejs.org/breaking-changes/global-api.html#a-new-global-api-createapp).
[Example commit](https://github.com/vuejs/vue-hackernews-2.0/commit/a6e0c9ac7b1f4131908a4b1e43641f608593f714) [Example commit](https://github.com/vuejs/vue-hackernews-2.0/commit/a6e0c9ac7b1f4131908a4b1e43641f608593f714)
@ -258,72 +258,72 @@ Features that start with `COMPILER_` are compiler-specific: if you are using the
| ID | Type | Description | Docs | | ID | Type | Description | Docs |
| ------------------------------------- | ---- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | ------------------------------------- | ---- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| GLOBAL_MOUNT_CONTAINER | ⨂ | Mounted application does not replace the element it's mounted to | [link](https://v3.vuejs.org/guide/migration/mount-changes.html) | | GLOBAL_MOUNT_CONTAINER | ⨂ | Mounted application does not replace the element it's mounted to | [link](https://v3-migration.vuejs.org/breaking-changes/mount-changes.html) |
| CONFIG_DEVTOOLS | ⨂ | production devtools is now a build-time flag | [link](https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags) | | CONFIG_DEVTOOLS | ⨂ | production devtools is now a build-time flag | [link](https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags) |
| COMPILER_V_IF_V_FOR_PRECEDENCE | ⨂ | `v-if` and `v-for` precedence when used on the same element has changed | [link](https://v3.vuejs.org/guide/migration/v-if-v-for.html) | | COMPILER_V_IF_V_FOR_PRECEDENCE | ⨂ | `v-if` and `v-for` precedence when used on the same element has changed | [link](https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html) |
| COMPILER_V_IF_SAME_KEY | ⨂ | `v-if` branches can no longer have the same key | [link](https://v3.vuejs.org/guide/migration/key-attribute.html#on-conditional-branches) | | COMPILER_V_IF_SAME_KEY | ⨂ | `v-if` branches can no longer have the same key | [link](https://v3-migration.vuejs.org/breaking-changes/key-attribute.html#on-conditional-branches) |
| COMPILER_V_FOR_TEMPLATE_KEY_PLACEMENT | ⨂ | `<template v-for>` key should now be placed on `<template>` | [link](https://v3.vuejs.org/guide/migration/key-attribute.html#with-template-v-for) | | COMPILER_V_FOR_TEMPLATE_KEY_PLACEMENT | ⨂ | `<template v-for>` key should now be placed on `<template>` | [link](https://v3-migration.vuejs.org/breaking-changes/key-attribute.html#with-template-v-for) |
| COMPILER_SFC_FUNCTIONAL | ⨂ | `<template functional>` is no longer supported in SFCs | [link](https://v3.vuejs.org/guide/migration/functional-components.html#single-file-components-sfcs) | | | | COMPILER_SFC_FUNCTIONAL | ⨂ | `<template functional>` is no longer supported in SFCs | [link](https://v3-migration.vuejs.org/breaking-changes/functional-components.html#single-file-components-sfcs) | | |
### Partially Compatible with Caveats ### Partially Compatible with Caveats
| ID | Type | Description | Docs | | ID | Type | Description | Docs |
| ------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | | ------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- |
| CONFIG_IGNORED_ELEMENTS | ◐ | `config.ignoredElements` is now `config.compilerOptions.isCustomElement` (only in browser compiler build). If using build setup, `isCustomElement` must be passed via build configuration. | [link](https://v3.vuejs.org/guide/migration/global-api.html#config-ignoredelements-is-now-config-iscustomelement) | | CONFIG_IGNORED_ELEMENTS | ◐ | `config.ignoredElements` is now `config.compilerOptions.isCustomElement` (only in browser compiler build). If using build setup, `isCustomElement` must be passed via build configuration. | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement) |
| COMPILER_INLINE_TEMPLATE | ◐ | `inline-template` removed (compat only supported in browser compiler build) | [link](https://v3.vuejs.org/guide/migration/inline-template-attribute.html) | | COMPILER_INLINE_TEMPLATE | ◐ | `inline-template` removed (compat only supported in browser compiler build) | [link](https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html) |
| PROPS_DEFAULT_THIS | ◐ | props default factory no longer have access to `this` (in compat mode, `this` is not a real instance - it only exposes props, `$options` and injections) | [link](https://v3.vuejs.org/guide/migration/props-default-this.html) | | PROPS_DEFAULT_THIS | ◐ | props default factory no longer have access to `this` (in compat mode, `this` is not a real instance - it only exposes props, `$options` and injections) | [link](https://v3-migration.vuejs.org/breaking-changes/props-default-this.html) |
| INSTANCE_DESTROY | ◐ | `$destroy` instance method removed (in compat mode, only supported on root instance) | | | INSTANCE_DESTROY | ◐ | `$destroy` instance method removed (in compat mode, only supported on root instance) | |
| GLOBAL_PRIVATE_UTIL | ◐ | `Vue.util` is private and no longer available | | | GLOBAL_PRIVATE_UTIL | ◐ | `Vue.util` is private and no longer available | |
| CONFIG_PRODUCTION_TIP | ◐ | `config.productionTip` no longer necessary | [link](https://v3.vuejs.org/guide/migration/global-api.html#config-productiontip-removed) | | CONFIG_PRODUCTION_TIP | ◐ | `config.productionTip` no longer necessary | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed) |
| CONFIG_SILENT | ◐ | `config.silent` removed | | CONFIG_SILENT | ◐ | `config.silent` removed |
### Compat only (no warning) ### Compat only (no warning)
| ID | Type | Description | Docs | | ID | Type | Description | Docs |
| ------------------ | ---- | ------------------------------------- | ---------------------------------------- | | ------------------ | ---- | ------------------------------------- | ---------------------------------------- |
| TRANSITION_CLASSES | ⭘ | Transtion enter/leave classes changed | [link](https://v3.vuejs.org/guide/migration/transition.html) | | TRANSITION_CLASSES | ⭘ | Transtion enter/leave classes changed | [link](https://v3-migration.vuejs.org/breaking-changes/transition.html) |
### Fully Compatible ### Fully Compatible
| ID | Type | Description | Docs | | ID | Type | Description | Docs |
| ---------------------------- | ---- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | | ---------------------------- | ---- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| GLOBAL_MOUNT | ✔ | new Vue() -> createApp | [link](https://v3.vuejs.org/guide/migration/global-api.html#mounting-app-instance) | | GLOBAL_MOUNT | ✔ | new Vue() -> createApp | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance) |
| GLOBAL_EXTEND | ✔ | Vue.extend removed (use `defineComponent` or `extends` option) | [link](https://v3.vuejs.org/guide/migration/global-api.html#vue-extend-replaced-by-definecomponent) | | GLOBAL_EXTEND | ✔ | Vue.extend removed (use `defineComponent` or `extends` option) | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-extend-replaced-by-definecomponent) |
| GLOBAL_PROTOTYPE | ✔ | `Vue.prototype` -> `app.config.globalProperties` | [link](https://v3.vuejs.org/guide/migration/global-api.html#vue-prototype-replaced-by-config-globalproperties) | | GLOBAL_PROTOTYPE | ✔ | `Vue.prototype` -> `app.config.globalProperties` | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties) |
| GLOBAL_SET | ✔ | `Vue.set` removed (no longer needed) | | | GLOBAL_SET | ✔ | `Vue.set` removed (no longer needed) | |
| GLOBAL_DELETE | ✔ | `Vue.delete` removed (no longer needed) | | | GLOBAL_DELETE | ✔ | `Vue.delete` removed (no longer needed) | |
| GLOBAL_OBSERVABLE | ✔ | `Vue.observable` removed (use `reactive`) | [link](https://v3.vuejs.org/api/basic-reactivity.html) | | GLOBAL_OBSERVABLE | ✔ | `Vue.observable` removed (use `reactive`) | [link](https://vuejs.org/api/reactivity-core.html#reactive) |
| CONFIG_KEY_CODES | ✔ | config.keyCodes removed | [link](https://v3.vuejs.org/guide/migration/keycode-modifiers.html) | | CONFIG_KEY_CODES | ✔ | config.keyCodes removed | [link](https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html) |
| CONFIG_WHITESPACE | ✔ | In Vue 3 whitespace defaults to `"condense"` | | | CONFIG_WHITESPACE | ✔ | In Vue 3 whitespace defaults to `"condense"` | |
| INSTANCE_SET | ✔ | `vm.$set` removed (no longer needed) | | | INSTANCE_SET | ✔ | `vm.$set` removed (no longer needed) | |
| INSTANCE_DELETE | ✔ | `vm.$delete` removed (no longer needed) | | | INSTANCE_DELETE | ✔ | `vm.$delete` removed (no longer needed) | |
| INSTANCE_EVENT_EMITTER | ✔ | `vm.$on`, `vm.$off`, `vm.$once` removed | [link](https://v3.vuejs.org/guide/migration/events-api.html) | | INSTANCE_EVENT_EMITTER | ✔ | `vm.$on`, `vm.$off`, `vm.$once` removed | [link](https://v3-migration.vuejs.org/breaking-changes/events-api.html) |
| INSTANCE_EVENT_HOOKS | ✔ | Instance no longer emits `hook:x` events | [link](https://v3.vuejs.org/guide/migration/vnode-lifecycle-events.html) | | INSTANCE_EVENT_HOOKS | ✔ | Instance no longer emits `hook:x` events | [link](https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html) |
| INSTANCE_CHILDREN | ✔ | `vm.$children` removed | [link](https://v3.vuejs.org/guide/migration/children.html) | | INSTANCE_CHILDREN | ✔ | `vm.$children` removed | [link](https://v3-migration.vuejs.org/breaking-changes/children.html) |
| INSTANCE_LISTENERS | ✔ | `vm.$listeners` removed | [link](https://v3.vuejs.org/guide/migration/listeners-removed.html) | | INSTANCE_LISTENERS | ✔ | `vm.$listeners` removed | [link](https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html) |
| INSTANCE_SCOPED_SLOTS | ✔ | `vm.$scopedSlots` removed; `vm.$slots` now exposes functions | [link](https://v3.vuejs.org/guide/migration/slots-unification.html) | | INSTANCE_SCOPED_SLOTS | ✔ | `vm.$scopedSlots` removed; `vm.$slots` now exposes functions | [link](https://v3-migration.vuejs.org/breaking-changes/slots-unification.html) |
| INSTANCE_ATTRS_CLASS_STYLE | ✔ | `$attrs` now includes `class` and `style` | [link](https://v3.vuejs.org/guide/migration/attrs-includes-class-style.html) | | INSTANCE_ATTRS_CLASS_STYLE | ✔ | `$attrs` now includes `class` and `style` | [link](https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html) |
| OPTIONS_DATA_FN | ✔ | `data` must be a function in all cases | [link](https://v3.vuejs.org/guide/migration/data-option.html) | | OPTIONS_DATA_FN | ✔ | `data` must be a function in all cases | [link](https://v3-migration.vuejs.org/breaking-changes/data-option.html) |
| OPTIONS_DATA_MERGE | ✔ | `data` from mixin or extension is now shallow merged | [link](https://v3.vuejs.org/guide/migration/data-option.html) | | OPTIONS_DATA_MERGE | ✔ | `data` from mixin or extension is now shallow merged | [link](https://v3-migration.vuejs.org/breaking-changes/data-option.html) |
| OPTIONS_BEFORE_DESTROY | ✔ | `beforeDestroy` -> `beforeUnmount` | | | OPTIONS_BEFORE_DESTROY | ✔ | `beforeDestroy` -> `beforeUnmount` | |
| OPTIONS_DESTROYED | ✔ | `destroyed` -> `unmounted` | | | OPTIONS_DESTROYED | ✔ | `destroyed` -> `unmounted` | |
| WATCH_ARRAY | ✔ | watching an array no longer triggers on mutation unless deep | [link](https://v3.vuejs.org/guide/migration/watch.html) | | WATCH_ARRAY | ✔ | watching an array no longer triggers on mutation unless deep | [link](https://v3-migration.vuejs.org/breaking-changes/watch.html) |
| V_FOR_REF | ✔ | `ref` inside `v-for` no longer registers array of refs | [link](https://v3.vuejs.org/guide/migration/array-refs.html) | | V_FOR_REF | ✔ | `ref` inside `v-for` no longer registers array of refs | [link](https://v3-migration.vuejs.org/breaking-changes/array-refs.html) |
| V_ON_KEYCODE_MODIFIER | ✔ | `v-on` no longer supports keyCode modifiers | [link](https://v3.vuejs.org/guide/migration/keycode-modifiers.html) | | V_ON_KEYCODE_MODIFIER | ✔ | `v-on` no longer supports keyCode modifiers | [link](https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html) |
| CUSTOM_DIR | ✔ | Custom directive hook names changed | [link](https://v3.vuejs.org/guide/migration/custom-directives.html) | | CUSTOM_DIR | ✔ | Custom directive hook names changed | [link](https://v3-migration.vuejs.org/breaking-changes/custom-directives.html) |
| ATTR_FALSE_VALUE | ✔ | No longer removes attribute if binding value is boolean `false` | [link](https://v3.vuejs.org/guide/migration/attribute-coercion.html) | | ATTR_FALSE_VALUE | ✔ | No longer removes attribute if binding value is boolean `false` | [link](https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html) |
| ATTR_ENUMERATED_COERSION | ✔ | No longer special case enumerated attributes | [link](https://v3.vuejs.org/guide/migration/attribute-coercion.html) | | ATTR_ENUMERATED_COERSION | ✔ | No longer special case enumerated attributes | [link](https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html) |
| TRANSITION_GROUP_ROOT | ✔ | `<transition-group>` no longer renders a root element by default | [link](https://v3.vuejs.org/guide/migration/transition-group.html) | | TRANSITION_GROUP_ROOT | ✔ | `<transition-group>` no longer renders a root element by default | [link](https://v3-migration.vuejs.org/breaking-changes/transition-group.html) |
| COMPONENT_ASYNC | ✔ | Async component API changed (now requires `defineAsyncComponent`) | [link](https://v3.vuejs.org/guide/migration/async-components.html) | | COMPONENT_ASYNC | ✔ | Async component API changed (now requires `defineAsyncComponent`) | [link](https://v3-migration.vuejs.org/breaking-changes/async-components.html) |
| COMPONENT_FUNCTIONAL | ✔ | Functional component API changed (now must be plain functions) | [link](https://v3.vuejs.org/guide/migration/functional-components.html) | | COMPONENT_FUNCTIONAL | ✔ | Functional component API changed (now must be plain functions) | [link](https://v3-migration.vuejs.org/breaking-changes/functional-components.html) |
| COMPONENT_V_MODEL | ✔ | Component v-model reworked | [link](https://v3.vuejs.org/guide/migration/v-model.html) | | COMPONENT_V_MODEL | ✔ | Component v-model reworked | [link](https://v3-migration.vuejs.org/breaking-changes/v-model.html) |
| RENDER_FUNCTION | ✔ | Render function API changed | [link](https://v3.vuejs.org/guide/migration/render-function-api.html) | | RENDER_FUNCTION | ✔ | Render function API changed | [link](https://v3-migration.vuejs.org/breaking-changes/render-function-api.html) |
| FILTERS | ✔ | Filters removed (this option affects only runtime filter APIs) | [link](https://v3.vuejs.org/guide/migration/filters.html) | | FILTERS | ✔ | Filters removed (this option affects only runtime filter APIs) | [link](https://v3-migration.vuejs.org/breaking-changes/filters.html) |
| COMPILER_IS_ON_ELEMENT | ✔ | `is` usage is now restricted to `<component>` only | [link](https://v3.vuejs.org/guide/migration/custom-elements-interop.html) | | COMPILER_IS_ON_ELEMENT | ✔ | `is` usage is now restricted to `<component>` only | [link](https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html) |
| COMPILER_V_BIND_SYNC | ✔ | `v-bind.sync` replaced by `v-model` with arguments | [link](https://v3.vuejs.org/guide/migration/v-model.html) | | COMPILER_V_BIND_SYNC | ✔ | `v-bind.sync` replaced by `v-model` with arguments | [link](https://v3-migration.vuejs.org/breaking-changes/v-model.html) |
| COMPILER_V_BIND_PROP | ✔ | `v-bind.prop` modifier removed | | | COMPILER_V_BIND_PROP | ✔ | `v-bind.prop` modifier removed | |
| COMPILER_V_BIND_OBJECT_ORDER | ✔ | `v-bind="object"` is now order sensitive | [link](https://v3.vuejs.org/guide/migration/v-bind.html) | | COMPILER_V_BIND_OBJECT_ORDER | ✔ | `v-bind="object"` is now order sensitive | [link](https://v3-migration.vuejs.org/breaking-changes/v-bind.html) |
| COMPILER_V_ON_NATIVE | ✔ | `v-on.native` modifier removed | [link](https://v3.vuejs.org/guide/migration/v-on-native-modifier-removed.html) | | COMPILER_V_ON_NATIVE | ✔ | `v-on.native` modifier removed | [link](https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html) |
| COMPILER_V_FOR_REF | ✔ | `ref` in `v-for` (compiler support) | | | COMPILER_V_FOR_REF | ✔ | `ref` in `v-for` (compiler support) | |
| COMPILER_NATIVE_TEMPLATE | ✔ | `<template>` with no special directives now renders as native element | | | COMPILER_NATIVE_TEMPLATE | ✔ | `<template>` with no special directives now renders as native element | |
| COMPILER_FILTERS | ✔ | filters (compiler support) | | | COMPILER_FILTERS | ✔ | filters (compiler support) | |