|
1 | 1 | import { getCurrentInstance, onBeforeUnmount, isRef, watch, reactive, toRef, isReactive, Ref, set } from 'vue' |
2 | 2 | import type { CombinedVueInstance } from 'vue/types/vue' |
3 | 3 | import type { MetaInfo } from 'vue-meta' |
4 | | -import type VueRouter from 'vue-router' |
5 | | -import type { Location, Route } from 'vue-router' |
| 4 | +import type { Location, RawLocation, Route } from 'vue-router' |
6 | 5 | import type { RuntimeConfig } from '@nuxt/schema' |
7 | 6 | import { sendRedirect } from 'h3' |
8 | 7 | import { defu } from 'defu' |
| 8 | +import { useRouter } from 'vue-router/composables' |
9 | 9 | import { useNuxtApp } from './app' |
10 | 10 |
|
11 | 11 | export { useLazyAsyncData, refreshNuxtData } from './asyncData' |
@@ -48,29 +48,8 @@ export const useRuntimeConfig = () => { |
48 | 48 | return nuxtApp._config as RuntimeConfig |
49 | 49 | } |
50 | 50 |
|
51 | | -// Auto-import equivalents for `vue-router` |
52 | | -export const useRouter = () => { |
53 | | - return useNuxtApp()?.nuxt2Context.app.router as VueRouter |
54 | | -} |
55 | | - |
56 | | -// This provides an equivalent interface to `vue-router` (unlike legacy implementation) |
57 | | -export const useRoute = () => { |
58 | | - const nuxtApp = useNuxtApp() |
59 | | - |
60 | | - if (!nuxtApp._route) { |
61 | | - Object.defineProperty(nuxtApp, '__route', { |
62 | | - get: () => nuxtApp.nuxt2Context.app.context.route |
63 | | - }) |
64 | | - nuxtApp._route = reactive(nuxtApp.__route) |
65 | | - const router = useRouter() |
66 | | - router.afterEach(route => Object.assign(nuxtApp._route, route)) |
67 | | - } |
68 | | - |
69 | | - return nuxtApp._route as Route |
70 | | -} |
71 | | - |
72 | 51 | // payload.state is used for vuex by nuxt 2 |
73 | | -export const useState = <T>(key: string, init?: (() => T)): Ref<T> => { |
| 52 | +export const useState = <T> (key: string, init?: (() => T)): Ref<T> => { |
74 | 53 | const nuxtApp = useNuxtApp() |
75 | 54 | if (!nuxtApp.payload.useState) { |
76 | 55 | nuxtApp.payload.useState = {} |
@@ -195,7 +174,7 @@ export interface NavigateToOptions { |
195 | 174 | replace?: boolean |
196 | 175 | } |
197 | 176 |
|
198 | | -export const navigateTo = (to: Route, options: NavigateToOptions = {}): Promise<Route | void> | Route => { |
| 177 | +export const navigateTo = (to: RawLocation, options: NavigateToOptions = {}): Promise<RawLocation | Route | void> | RawLocation | Route => { |
199 | 178 | if (isProcessingMiddleware()) { |
200 | 179 | return to |
201 | 180 | } |
|
0 commit comments