mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-11 08:33:53 +00:00
fix(nuxt): compatible route object for custom external routes (#19261)
This commit is contained in:
parent
9e6fa9f7ba
commit
f16cce8824
@ -1,7 +1,7 @@
|
|||||||
import type { PropType, DefineComponent, ComputedRef } from 'vue'
|
import type { PropType, DefineComponent, ComputedRef } from 'vue'
|
||||||
import { defineComponent, h, ref, resolveComponent, computed, onMounted, onBeforeUnmount } from 'vue'
|
import { defineComponent, h, ref, resolveComponent, computed, onMounted, onBeforeUnmount } from 'vue'
|
||||||
import type { RouteLocationRaw } from 'vue-router'
|
import type { RouteLocationRaw } from 'vue-router'
|
||||||
import { hasProtocol } from 'ufo'
|
import { hasProtocol, parseQuery, parseURL } from 'ufo'
|
||||||
|
|
||||||
import { preloadRouteComponents } from '../composables/preload'
|
import { preloadRouteComponents } from '../composables/preload'
|
||||||
import { onNuxtReady } from '../composables/ready'
|
import { onNuxtReady } from '../composables/ready'
|
||||||
@ -250,10 +250,28 @@ export function defineNuxtLink (options: NuxtLinkOptions) {
|
|||||||
if (!slots.default) {
|
if (!slots.default) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
return slots.default({
|
return slots.default({
|
||||||
href,
|
href,
|
||||||
navigate,
|
navigate,
|
||||||
route: router.resolve(href!),
|
get route () {
|
||||||
|
if (!href) { return undefined }
|
||||||
|
|
||||||
|
const url = parseURL(href)
|
||||||
|
return {
|
||||||
|
path: url.pathname,
|
||||||
|
fullPath: url.pathname,
|
||||||
|
get query () { return parseQuery(url.search) },
|
||||||
|
hash: url.hash,
|
||||||
|
// stub properties for compat with vue-router
|
||||||
|
params: {},
|
||||||
|
name: undefined,
|
||||||
|
matched: [],
|
||||||
|
redirectedFrom: undefined,
|
||||||
|
meta: {},
|
||||||
|
href
|
||||||
|
}
|
||||||
|
},
|
||||||
rel,
|
rel,
|
||||||
target,
|
target,
|
||||||
isExternal: isExternal.value,
|
isExternal: isExternal.value,
|
||||||
|
@ -40,7 +40,7 @@ describe.skipIf(isWindows)('minimal nuxt application', () => {
|
|||||||
|
|
||||||
it('default server bundle size', async () => {
|
it('default server bundle size', async () => {
|
||||||
stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
|
stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
|
||||||
expect(stats.server.totalBytes).toBeLessThan(92100)
|
expect(stats.server.totalBytes).toBeLessThan(92700)
|
||||||
|
|
||||||
const modules = await analyzeSizes('node_modules/**/*', serverDir)
|
const modules = await analyzeSizes('node_modules/**/*', serverDir)
|
||||||
expect(modules.totalBytes).toBeLessThan(2710200)
|
expect(modules.totalBytes).toBeLessThan(2710200)
|
||||||
|
Loading…
Reference in New Issue
Block a user