À propos du projet

Jotai est une bibliothèque de gestion d'état primitive et flexible pour React, distribuée sous forme de paquet npm. Son API de base est petite (environ 2kb) et elle est conçue pour évoluer d'un simple remplacement de useState jusqu'à des applications TypeScript d'entreprise. Le concept central est l'atome, qui représente une partie de l'état. Les atomes primitifs sont créés avec une valeur initiale, qui peut être une chaîne, un nombre, un objet ou un tableau. Les composants consomment les atomes via le hook useAtom, qui se comporte de manière similaire à React.useState et renvoie la valeur actuelle plus un setter. Les atomes dérivés peuvent être construits à partir d'atomes existants. Un atome dérivé en lecture seule est créé en passant une fonction de lecture comme premier argument ; l'assistant get récupère la valeur contextuelle de n'importe quel atome. Plusieurs atomes peuvent être combinés en un seul atome dérivé, y compris via des motifs fonctionnels tels que mapper get sur un tableau d'atomes. Les atomes dérivés asynchrones sont pris en charge en rendant la fonction de lecture asynchrone, ce qui s'intègre avec React Suspense pour les états de chargement. Les atomes dérivés inscriptibles acceptent une fonction d'écriture comme deuxième argument, où get renvoie la valeur actuelle et set met à jour un atome. Les atomes en écriture seule sont possibles en omettant la fonction de lecture, et des actions asynchrones peuvent être implémentées en rendant la fonction d'écriture asynchrone et en appelant set lorsque le résultat est prêt. Le projet note que son interface fluide est intentionnelle : les atomes sont décrits comme des monades, un motif pour un code modulaire, pur et maintenable. La documentation, un site web et un cours sont liés depuis le README. La bibliothèque évite les clés de chaîne, ce que le README contraste avec Recoil.