From 9f95fb7b3bb844ab7cd39df0f513bc098c24e92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20K=C3=B6nig?= Date: Tue, 6 Aug 2024 08:28:36 +0200 Subject: [PATCH] Section about deprecated onDemand and onAbort callback arguments (#2330) * Added deprecated onDemand and onAbort callback arguments to migration guide The onDemand and onAbort callbacks for router.push and .replace were deprecated in v4. I added a section to the migration guide explaining that users should replace them with the thenable Promise the methods return. * Apply suggestions from code review * Update packages/docs/guide/migration/index.md [skip ci] --------- Co-authored-by: Eduardo San Martin Morote --- packages/docs/guide/migration/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/docs/guide/migration/index.md b/packages/docs/guide/migration/index.md index 1f841c89e..6fb85383b 100644 --- a/packages/docs/guide/migration/index.md +++ b/packages/docs/guide/migration/index.md @@ -443,6 +443,12 @@ Given any [normalized route location](/api/#RouteLocationNormalized): **Reason**: This allows to easily copy existing properties of a location when calling `router.push()` and `router.resolve()`, and make the resulting route location consistent across browsers. `router.push()` is now idempotent, meaning that calling `router.push(route.fullPath)`, `router.push({ hash: route.hash })`, `router.push({ query: route.query })`, and `router.push({ params: route.params })` will not create extra encoding. +### `$router.push()` and `$router.replace()` - `onComplete` and `onAbort` callbacks + +Previously, `$router.push()` and `$router.replace()` accepted two callbacks, `onComplete` and `onAbort`, as second and third arguments. They were called after a navigation based on the result. With the introduction of a Promise based API, these callbacks are redundant and have been removed. See [Navigation Failures](/guide/advanced/navigation-failures.md) for more information on how to detect successful and failed navigations. + +**Reason**: Reduce library size by adapting to established JS standards (Promises). + ### TypeScript changes To make typings more consistent and expressive, some types have been renamed: