Link

GitHub
Ein Wrapper um NuxtLink mit zusätzlichen Requisiten.

Bearbeiten

Die Link-Komponente ist ein Wrapper um <NuxtLink> mit dem custom prop.

  • inactive-class prop um eine Klasse zu setzen, wenn der Link inaktiv ist, wird active-class verwendet, wenn er aktiv ist.
  • exact unterstützt das Styling mit active-class, wenn der Link aktiv ist und die Route genau der aktuellen Route entspricht.
  • exact-query und exact-hash werden mit active-class formatiert, wenn der Link aktiv ist und die Abfrage oder der Hash genau mit der aktuellen Abfrage oder dem aktuellen Hash übereinstimmt.
    • Verwenden Sie exact-query="partial" zum Formatieren mit active-class, wenn der Link aktiv ist und die Abfrage teilweise mit der aktuellen Abfrage übereinstimmt.

Der Anreiz dahinter ist, die gleiche API wie NuxtLink wieder in Nuxt 2/Vue 2 bereitzustellen. Sie können mehr darüber in der Vue Router migration von Vue 2 Anleitung lesen.

Es wird von den Komponenten Breadcrumb, Button, [ContextMenu](](/docs/components/context-menu), DropdownMenu und [NavigationMenuxph0505505xxph0555555xph0555x verwendet.

xp053xTag

Die Link-Komponenten rendern ein <a>-Tag, wenn eine to-Prop bereitgestellt wird, andernfalls rendert sie ein <button>-Tag.

<template>
  <ULink as="button">Link</ULink>
</template>
Sie können den gerenderten HTML-Code überprüfen, indem Sie die to-Prop ändern.

Style (Englisch)

Standardmäßig hat der Link standardmäßig aktive und inaktive Styles, siehe Abschnitt #theme.

<template>
  <ULink to="/docs/components/link">Link</ULink>
</template>
Versuchen Sie, die to-Prop zu ändern, um die aktiven und inaktiven Zustände zu sehen.

Sie können dieses Verhalten mit der raw-Prop überschreiben und Ihre eigenen Styles mit class, active-class und inactive-class bereitstellen.

<template>
  <ULink raw to="/docs/components/link" active-class="font-bold" inactive-class="text-muted">Link</ULink>
</template>
Wenn Sie die Tailwind CSS IntelliSense-Erweiterung für VSCode verwenden und die automatische Vervollständigung für die active-class-und inactive-class-Props erhalten möchten, können Sie die folgenden Einstellungen zu Ihrem .vscode/settings.json hinzufügen:
.vscode/settings.json
{
  "tailwindCSS.classAttributes": [
    "active-class",
    "inactive-class"
  ]
}

Locale: badge{label="4.7+" class="align-text-top"}

Die Link-Komponente integriert sich automatisch in @nuxtjs/i18n, wenn sie installiert ist. Interne Links werden automatisch mit dem $localePath-Helfer lokalisiert, ohne dass ein manuelles Wrapping erforderlich ist.

<template>
  <!-- Automatically becomes /en/about or /fr/about based on current locale -->
  <ULink to="/about">About</ULink>
</template>
Bei Bedarf können Sie weiterhin manuell localePath() oder localeRoute() verwenden.
Erfahren Sie mehr über die Internationalisierung in Nuxt UI.

API ist

Props (nicht)

Prop Default Type
as
'button'
any

The element or component this component should render as when not a link.

type
'button'
"reset" | "submit" | "button"

The type of the button when not a link.

disabled
boolean
active
undefined
boolean

Force the link to be active independent of the current route.

exact
boolean

Will only be active if the current route is an exact match.

exactQuery
boolean | "partial"

Allows controlling how the current route query sets the link as active.

exactHash
boolean

Will only be active if the current route hash is an exact match.

inactiveClass
string

The class to apply when the link is inactive.

raw
boolean

When true, only styles from class, activeClass, and inactiveClass will be applied.

locale
undefined
string | false | true

Control i18n auto-localization when @nuxtjs/i18n is installed.

  • undefined / true (default): auto-localizes to the current locale using $localePath. Paths already carrying a locale prefix (from e.g. switchLocalePath()) are detected and left untouched to prevent double-prefixing.
  • false: explicitly disables auto-localization.
  • string: localizes to a specific locale (e.g. 'fr').
to
string | it | et

Route Location the link should navigate to when clicked on.

href
string | it | et

An alias for to. If used with to, href will be ignored

external
boolean

Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases

target
null | string | "_blank" | "_parent" | "_self" | "_top"

Where to display the linked URL, as the name for a browsing context.

rel
null | "noopener" | "noreferrer" | "nofollow" | "sponsored" | "ugc" | string

A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.

noRel
boolean

If set to true, no rel attribute will be added to the link

prefetchedClass
string

A class to apply to links that have been prefetched.

prefetch
boolean

When enabled will prefetch middleware, layouts and payloads of links in the viewport.

prefetchOn
"visibility" | "interaction" | Partial<{ visibility: boolean; interaction: boolean; }>

Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.

noPrefetch
boolean

Escape hatch to disable prefetch attribute.

trailingSlash
"remove" | "append"

An option to either add or remove trailing slashes in the href for this specific link. Overrides the global trailingSlash option if provided.

activeClass
string

Class to apply when the link is active

exactActiveClass
string

Class to apply when the link is exact active

ariaCurrentValue
'page'
"step" | "page" | "true" | "false" | "location" | "date" | "time"

Value passed to the attribute aria-current when the link is exact active.

viewTransition
boolean

Pass the returned promise of router.push() to document.startViewTransition() if supported.

replace
boolean

Calls router.replace instead of router.push.

name
string
autofocus
false | true | "true" | "false"
form
string
formaction
string
formenctype
string
formmethod
string
formnovalidate
false | true | "true" | "false"
formtarget
string
referrerpolicy
"" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"
download
any
hreflang
string
media
string
ping
string
Diese Komponente unterstützt auch alle nativen <a> HTML-Attribute.

Slots (englisch)

Slot Type
default
{ active: boolean; }

Theme Bearbeiten

app.config.ts
export default defineAppConfig({
  ui: {
    link: {
      base: 'outline-primary/25 focus-visible:outline-3 rounded-md',
      variants: {
        active: {
          true: 'text-primary',
          false: 'text-muted'
        },
        disabled: {
          true: 'cursor-not-allowed opacity-75'
        }
      },
      compoundVariants: [
        {
          active: false,
          disabled: false,
          class: [
            'hover:text-default',
            'transition-colors'
          ]
        }
      ]
    }
  }
})
vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui({
      ui: {
        link: {
          base: 'outline-primary/25 focus-visible:outline-3 rounded-md',
          variants: {
            active: {
              true: 'text-primary',
              false: 'text-muted'
            },
            disabled: {
              true: 'cursor-not-allowed opacity-75'
            }
          },
          compoundVariants: [
            {
              active: false,
              disabled: false,
              class: [
                'hover:text-default',
                'transition-colors'
              ]
            }
          ]
        }
      }
    })
  ]
})

Changelog Bearbeiten

No recent changes