useLinkStatus
Der useLinkStatus
-Hook ermöglicht es Ihnen, den pending-Status eines <Link>
-Elements zu verfolgen. Sie können ihn verwenden, um dem Benutzer während der Navigation zu einer neuen Route visuelles Feedback anzuzeigen (wie Ladeanimationen oder Textglitzern).
useLinkStatus
ist nützlich, wenn:
- Prefetching deaktiviert ist oder im Gange ist, was bedeutet, dass die Navigation blockiert ist.
- Die Zielroute dynamisch ist und keine
loading.js
-Datei enthält, die eine sofortige Navigation ermöglichen würde.
Wissenswert:
useLinkStatus
muss innerhalb einer untergeordneten Komponente einesLink
-Elements verwendet werden- Der Hook ist besonders nützlich, wenn
prefetch={false}
für dasLink
-Element gesetzt ist- Wenn die verlinkte Route bereits geprefetched wurde, wird der pending-Status übersprungen
- Wenn mehrere Links schnell hintereinander geklickt werden, wird nur der pending-Status des letzten Links angezeigt
- Dieser Hook wird im Pages Router nicht unterstützt und gibt immer
{ pending: false }
zurück
Parameter
useLinkStatus
nimmt keine Parameter entgegen.
Rückgabewerte
useLinkStatus
gibt ein Objekt mit einer einzelnen Eigenschaft zurück:
Eigenschaft | Typ | Beschreibung |
---|---|---|
pending | boolean | true vor dem History-Update, false danach |
Beispiel
Inline-Ladeindikator
Es ist hilfreich, visuelles Feedback anzuzeigen, wenn die Navigation stattfindet, falls der Benutzer einen Link anklickt, bevor das Prefetching abgeschlossen ist.
Umgang mit schneller Navigation
Wenn die Navigation zu einer neuen Route schnell ist, könnten Benutzer ein unnötiges Aufblitzen des Ladeindikators sehen. Eine Möglichkeit, die Benutzererfahrung zu verbessern und den Ladeindikator nur anzuzeigen, wenn die Navigation länger dauert, besteht darin, eine anfängliche Animationsverzögerung (z.B. 100ms) hinzuzufügen und die Animation unsichtbar zu starten (z.B. opacity: 0
).
Version | Änderungen |
---|---|
v15.3.0 | useLinkStatus eingeführt. |