diff --git a/packages/vuetify/src/composables/router.tsx b/packages/vuetify/src/composables/router.tsx index 2e9019758935..0fdeff1aff6c 100644 --- a/packages/vuetify/src/composables/router.tsx +++ b/packages/vuetify/src/composables/router.tsx @@ -64,9 +64,15 @@ export function useLink (props: LinkProps & LinkListeners, attrs: SetupContext[' href: toRef(props, 'href'), } } - // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined - const link = computed(() => props.to ? RouterLink.useLink(props as UseLinkOptions) : undefined) + const linkProps = computed(() => ({ + ...props, + to: toRef(() => props.to || ''), + })) + + const routerLink = RouterLink.useLink(linkProps.value as UseLinkOptions) + // Actual link needs to be undefined when to prop is not used + const link = computed(() => props.to ? routerLink : undefined ) const route = useRoute()