Beispiele
Im Abschnitt Verwendung finden Sie Informationen darüber, wie und wann Sie die Komponente AsyncLink verwenden können.
Grundlegender AsyncLink
Dieses Beispiel zeigt die grundlegende Verwendung der AsyncLink-Komponente. Wenn Sie auf den Link klicken, kann der Rückruf der Eigenschaft onTrigger entweder true, false oder eine Zusage zurückgeben. In diesem Beispiel wird die zugewiesene Nachricht „Bitte warten...“ angezeigt. Nach zwei Sekunden verschwindet diese Nachricht und zeigt den Text „Gesendet“ an.
import React, { useState, useEffect } from 'react';
import { AsyncLink } from '@jutro/router/';
export const BasicAsyncLink = () => {
const [showMessage, setShowMessage] = useState(false);
const [message, setMessage] = useState('Submit');
const asyncMessage = "Wait...";
useEffect(() => {
let timerId;
if (showMessage) {
timerId = setTimeout(() => {
setShowMessage(false);
setMessage('Submited');
}, 2000);
}
return () => clearTimeout(timerId);
}, [showMessage]);
function clickFunction() {
setShowMessage(true);
setMessage(asyncMessage);
}
return (
<div>
<AsyncLink
message={asyncMessage}
onTrigger={clickFunction}
to="/test"
>
{message}
</AsyncLink>
</div>
);
};
AsyncLink-Meldungen
Mit diesen Eigenschaften toMessage und failToMessage können Sie Meldungen anzeigen, je nachdem, ob die zurückgegebene Zusage erfolgreich war oder abgelehnt wurde.
Außerdem können Sie die Eigenschaft failTo verwenden, um zu einem anderen Pfad weiterzuleiten, falls die Zusage fehlschlägt.
import React, { useState } from 'react';
import { AsyncLink } from '@jutro/router/';
export const MessagesAsyncLink = () => {
const [successLinkText, setSuccessLinkText] = useState('Success link');
const [failureLinkText, setFailureLinkText] = useState('Failure link');
const asyncMessage = "Wait...";
const successMessage = "Action completed successfully!";
const failureMessage = "Action failed. Please try again.";
const timer = 2000;
const handleSuccess = () => {
setSuccessLinkText(asyncMessage);
setTimeout(() => {
setSuccessLinkText(successMessage);
setTimeout(() => setSuccessLinkText('Success link'), timer);
}, 2000);
};
const handleFailure = () => {
setFailureLinkText(asyncMessage);
setTimeout(() => {
setFailureLinkText(failureMessage);
setTimeout(() => setFailureLinkText('Failure link'), timer);
}, 2000);
};
return (
<div>
<div>
<AsyncLink
message={asyncMessage}
toMessage={successMessage}
failToMessage={failureMessage}
onTrigger={handleSuccess}
to="/async-link#asynclink-messages"
>
{successLinkText}
</AsyncLink>
</div>
<div>
<AsyncLink
message={asyncMessage}
toMessage={successMessage}
failToMessage={failureMessage}
onTrigger={handleFailure}
to="/async-link#asynclink-messages"
>
{failureLinkText}
</AsyncLink>
</div>
</div>
);
};
Verwendung
Überblick
Die AsyncLink-Komponente bietet eine Möglichkeit, zu einer neuen Seite oder Route zu navigieren, allerdings erst nach Abschluss bestimmter Aufgaben oder Überprüfungen. Mit ihr können Sie steuern, wann und ob der Benutzer basierend auf bestimmten Bedingungen oder Vorgängen umgeleitet wird.
Zu verwenden
Verwenden Sie die AsyncLink-Komponente für:
- Überprüfen von Benutzeraktionen, z. B. Sicherstellen, dass ein Formular erfolgreich übermittelt wurde, bevor zu einer neuen Seite gewechselt wird.
- Laden von Daten, um sicherzustellen, dass vor dem Aufrufen wichtige Daten für die nächste Seite geladen werden.
- Ausführen von Aufgaben wie das Speichern von Benutzeraktionen, das Verfolgen des Benutzerverhaltens, das Anfordern einer Benutzerbestätigung oder das Speichern des aktuellen Status' vor der Weiterleitung.
Nicht zu verwenden
Verwenden Sie die AsyncLink-Komponente nicht für:
- Sofortige Navigation. Vermeiden Sie die Verwendung des Async-Links, wenn eine sofortige Navigation ohne Vorbedingungen oder Überprüfungen erforderlich ist. Verwenden Sie stattdessen die Link-Komponente.
- Einfache Navigation. Wenn die Navigation keine asynchronen Aufgaben wie das Laden von Daten oder Benutzeraktionen umfasst, kann die Verwendung eines asynchronen Links zu unnötiger Komplexität führen. Verwenden Sie stattdessen die Link-Komponente.
Aufbau

Die AsyncLink-Komponente besteht aus den folgenden Elementen:
- Beschriftung: Beschreibender Text, der den Kontext liefert und erklärt, wohin der Link führt.
Inhalt
Die AsyncLink-Komponente folgt den Inhaltsrichtlinien für Link-Komponenten.
Verhalten
AsyncLink zeigt beim Abrufen von Inhalten eine Ladeanzeige an. Diese besteht aus 3 pulsierenden Punkten. Die Ladeanzeige gewährleistet, dass die Benutzer über laufende Vorgänge informiert sind.
Bei Fehlern zeigt AsyncLink bei Bedarf eine Fehlermeldung oder eine Fallback-Benutzeroberfläche an. Nach erfolgreichem Abschluss wird aktualisiert und der abgerufene Inhalt angezeigt.
Barrierefreiheit
Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1 gemäß den Anforderungen der WCAG 2.1 AA. Nicht-textuelle Inhalte, die eine Bedeutung vermitteln müssen (z. B. Symbole und Sichtbarkeit des Tastaturfokus), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf. Alle Inhalte sind bis einschließlich 400 % sichtbar und funktionsfähig, ohne dass ein Scrollen in zwei Dimensionen erforderlich ist.
Diese Komponente wurde validiert, um die Zugänglichkeitsrichtlinien WCAG 2.1 AA zu erfüllen. Vom Autor des Inhalts vorgenommene Änderungen können sich jedoch auf die Konformität mit der Barrierefreiheit auswirken.
Befolgen Sie die folgenden Anweisungen, wenn Sie diese Komponente in Ihren Anwendungen verwenden:
- Vergewissern Sie sich, dass alle Farbänderungen den erforderlichen Schwellenwert von 4,5:1 einhalten.
- Stellen Sie sicher, dass Screenreader den Ladestatus und eventuelle Fehlermeldungen übermitteln.
- Vermeiden Sie die Verwendung von Wörtern und Wortgruppen wie „Hier klicken“ oder „hier“ als Linktext. Erstellen Sie stattdessen einen aussagekräftigen Linktext, der für sich allein genommen Sinn ergibt.
Code
Importanweisung
import { AsyncLink } from '@jutro/router/';
Komponentenvertrag
Vergewissern Sie sich, dass Sie die API-Oberfläche der Design System-Komponenten und die damit verbundenen Auswirkungen und Kompromisse verstehen. Erfahren Sie mehr in unserer Einführung zur Komponenten-API.
Eigenschaften
onTriggererforderlich
BeschreibungCalls the method used to trigger the promise.
children
BeschreibungThe children elements to render inside the Link.
disabled
BeschreibungIf set to true, the link is rendered in disabled state.
failTo
BeschreibungThe destination path when the promise is rejected.
failToMessage
BeschreibungThe message shown when the promise is rejected. It is only shown if failTo is not provided.
message
BeschreibungThe message shown when executing the trigger/promise.
TypIntlMessageShape | { pathname?: IntlMessageShape; hash?: IntlMessageShape } BeschreibungThe destination path when the link is clicked. Use this for paths internal to the application.
toMessage
BeschreibungThe message shown when the promise is resolved. It is only shown if to is not provided.
Hooks
Für AsyncLink sind keine Hooks verfügbar.
Übersetzungsschlüssel
Mit der Komponente AsyncLink sind keine Übersetzungsschlüssel verknüpft.
Escape Hatches
Weitere Informationen finden Sie in unserer Dokumentation über Escape-Hatches.
Folgende Optionen sind verfügbar:
- Design-Token
- Übergeben nativer HTML-Attribute
- Ref mit imperativen Handlern
- Native Ereigniseigenschaft