Hooks
Jutro macht Hooks verfügbar, die Sie in verschiedenen Fällen verwenden können. Wenn Sie sie verwenden, stellen Sie sicher, dass Sie die offiziellen Regeln für React-Hooks befolgen.
Die Hooks können Sie aus @jutro/platform importieren, zum Beispiel:
import { useCombinedRefs } from '@jutro/platform';
useAccessibleRef
Ermöglicht die Zugänglichkeit für DOM-Nodes. Beinhaltet die Verarbeitung des nativen Fokus und die Reaktion auf „Enter“- und „Space“-Tastaturereignisse auf die gleiche Weise wie auf Mausklicks.
Parameter:
focused: Wenntrue, ist das Element beim Rendern aktiv.
Rückgabe: React.MutableRefObject<T>. React-Referenz, die an den A11Y-aktivierten Nodes angefügt werden soll.
useCombinedRefs
Macht aus mehreren Referenzen eine einzelne Referenz. Verwenden Sie sie, wenn Sie forwardRef und eine Komponente ref für dasselbe Element benötigen
Parameter:
refs: Ein Array von zu kombinierenden React-Referenzen.
useControlled
Verwaltet den Zustand für kontrollierte und unkontrollierte Komponenten.
Parameter:
- Wenn ein Wert übergeben wird (kontrollierte Komponente), gibt er nichts vom Hook zurück. In diesem Fall führt die Funktion
setStatekeine Aktion aus. - Wenn kein Wert übergeben wird (unkontrollierte Komponente), wird der interne Zustand der Komponente wie bei
useStatebeibehalten.
Rückgabe: Das gleiche Tupel wie bei useState.
const [value, setValue] = useControlled({
value: valueProp,
defaultValue: null,
}); // controlled component
useDebounce
Gibt einen entprellten Wert zurück, der den letzten Wert für den angegebenen Zeitraum darstellt.
Parameter:
value: der entprellte Wertdelay: Zeitspanne, die gewartet wird, bevor der Zustand aktualisiert wird
Rückgabe: Der entprellte Wert.
const searchDebounced = useDebounce(search, 300);
useDeepEffect
Ein useEffect-Hook, der einen Tiefenvergleich der Abhängigkeiten durchführt. DOM-Elemente, Funktionen usw. werden weiterhin nach Identität verglichen (siehe isEqual von Lodash).
Parameter:
effect: Die effect-Funktion.dependencies- Ein Array von Abhängigkeiten. Sie werden intensiv miteinander verglichen.
useDeepEffect(() => {
if (!Array.isArray(value) && value) {
const { latitude, longitude, country } = value;
// This is triggered when any of the fields of "value" are changed
}
}, [value]);
useDeepMemo
Ein useMemo-Hook, der einen Tiefenvergleich der Abhängigkeiten durchführt. DOM-Elemente, Funktionen usw. werden weiterhin nach Identität verglichen (siehe isEqual von Lodash).
Parameter:
factory: Eine factory-Funktion, genau wie inuseMemo.param-Abhänigkeiten: Ein Array von Abhängigkeiten. Sie werden intensiv miteinander verglichen.
Rückgabe: Der von der factory-Funktion zurückgegebene Wert.