Crochets
Jutro présente des crochets que vous pouvez utiliser dans différents cas. Lors de leur utilisation, assurez-vous de suivre les règles officielles pour les crochets React.
Vous pouvez importer ces crochets depuis @jutro/platform, par exemple :
import { useCombinedRefs } from '@jutro/platform';
useAccessibleRef
Active l'accessibilité sur les nœuds DOM. Inclut la gestion du focus natif et la réaction aux événements de clavier « Entrée » et « Espace » de la même manière qu'aux clics de souris.
Paramètres :
focused: sitrue, l'élément est actif lors du rendu
Renvoie un React.MutableRefObject<T>, la référence de React qui doit être associée au nœud activé pour A11Y.
useCombinedRefs
Crée une seule référence à partir de plusieurs références. Utilisez-le si vous avez besoin de forwardRef et d'un composant ref pour le même élément
Paramètres :
refs: une série de références React à combiner.
useControlled
Gère l'état des composants contrôlés et non contrôlés.
Paramètres :
- Si une valeur est transmise (composant contrôlé), elle ne renvoie rien à partir du crochet. La fonction
setState, dans ce cas, ne fait rien. - Si aucune valeur n'est transmise (composant non contrôlé), fonctionne comme
useStateet conserve l'état interne du composant.
Renvoie le même tuple que useState.
const [value, setValue] = useControlled({
value: valueProp,
defaultValue: null,
}); // controlled component
useDebounce
Renvoie une valeur libérée qui reflète la dernière valeur pour la période spécifiée.
Paramètres :
valuela valeur à libérerdelayle délai d'attente avant la mise à jour de l'état
Renvoie la valeur libérée.
const searchDebounced = useDebounce(search, 300);
useDeepEffect
Un élément useEffect qui compare en profondeur ses dépendances. Les éléments DOM, les fonctions, etc. sont toujours comparés par identité (reportez-vous à isEqual de lodash).
Paramètres :
effect: la fonction d'effet.dependencies: une série de dépendances. Ils sont comparés en profondeur.
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
Un élément useMemo qui compare en profondeur ses dépendances. Les éléments DOM, les fonctions, etc. sont toujours comparés par identité (reportez-vous à isEqual de lodash).
Paramètres :
factory: une fonction d'usine, exactement comme dansuseMemo.- Dépendances
param: une série de dépendances. Ils sont comparés en profondeur.
Renvoie La valeur renvoyée par la fonction d'usine.
useDeepMemoize
Mémorise une valeur pour préserver son identité entre les rendus. Une nouvelle valeur n'est renvoyée que si elle n'est pas égale à la valeur précédente. Les éléments DOM, les fonctions, etc. sont toujours comparés par identité (reportez-vous à isEqual de lodash).
Paramètres :
valueLa valeur à mémoriser.
Renvoie La valeur mémorisée.
useId
Renvoie un ID. Utile sur les éléments DOM.
Paramètres :
Il n'existe qu'un seul paramètre, un objet avec les champs suivants :
prefix: un préfixe à ajouter à l'ID.default: renvoie la valeur par défaut telle quelle, sans génération supplémentaire. Le préfixe est prioritaire sur la valeur par défaut.
const id = useId({ default: idProp });
useIsMounted
Vérifie si le composant est installé. Lors de la première phase de rendu (corps de la fonction), il n'est pas installé.
Renvoie un React.RefObject<boolean> qui indique si le composant est installé.
useKeyActive
Suit si une clé est active
Paramètres :
refau nœud, qui doit servir de champ d'application pour l'événementtargetKeys: une série de chaînes indiquant les clés à suivre. Par défaut, il comprendEnteretSpace. Pour référence, voir clé et code
const isActiveKeyPressed = useKeyActive(refOne); // track Enter and space
const isActiveKeyPressed = useKeyActive(refTwo, ['Shift']); // track only Shift
useKeyPress
Facilite la gestion des événements du clavier
Paramètres :
refau nœud, qui doit servir de champ d'application pour l'événementtargetKeys: une série de chaînes indiquant les clés à suivre.callback: rappel pour gérer les événements keydown/keyup
useKeyPress(ref, ['Space', 'Enter'], handleKey);
usePathname
Renvoie le history.location.pathname actuel.
Nous essayons d'éviter useLocation, car il modifie la clé même si le chemin est le même, ce qui entraîne des rendus indésirables.
Si vous vous souciez uniquement des modifications de chemin, ce crochet se concentre sur elles.
usePrevious
Obtient la valeur précédente d'un objet de propriétés ou d'un objet d'état transmis comme paramètre (voir Comment obtenir les propriétés ou l'état précédents ?)
Paramètres :
valueLa valeur actuelle à stocker pour la prochaine utilisation du crochet
Renvoie la valeur précédente pour l'objet de référence transmis en tant que paramètre.