Zwiększ poziom zarządzania stanem aplikacji React za pomocą Jotai: prostszej alternatywy dla Redux, idealnej dla mniejszych projektów!
Zarządzanie stanem w projektach na małą skalę jest ogólnie proste przy użyciu haków i rekwizytów React. Jednak w miarę rozwoju aplikacji i pojawiania się potrzeby udostępniania i uzyskiwania dostępu do danych między różnymi komponentami często prowadzi to do wiercenia podporowego. Niestety wiercenie podporowe może szybko zaśmiecać bazę kodu i stwarzać problemy ze skalowalnością.
Chociaż Redux oferuje świetne rozwiązanie do zarządzania stanem, jego interfejs API może być przytłaczający w przypadku stosunkowo małych projektów. W przeciwieństwie do tego Jotai, minimalna biblioteka zarządzania stanem, która wykorzystuje do zarządzania niezależne jednostki stanów zwane atomami stanu, eliminuje wyzwania, takie jak wiercenie podpór i umożliwia prostsze i skalowalne zarządzanie stanem zbliżać się.
Co to jest Jotai i jak działa?
Jotaj to biblioteka zarządzania stanem, która oferuje proste rozwiązanie do zarządzania stanem w przeciwieństwie do bardziej złożonych alternatyw, takich jak Redux. Wykorzystuje niezależne jednostki stanu zwane atomami do zarządzania stanem w aplikacji React.
Idealnie byłoby, gdyby różne komponenty aplikacji uzyskiwały dostęp i aktualizowały te atomy za pomocą haka dostarczonego przez Jotai o nazwie użyj Atomu. Oto prosty przykład tworzenia atomu Jotai:
import { atom } z„jotai”;
konst liczbaAtom = atom(1);
Aby uzyskać dostęp i pracować z atomami w Jotai, możesz po prostu użyć użyj Atomu hak, który podobnie jak inne Haki reakcji, umożliwia dostęp i aktualizowanie wartości stanu w komponencie funkcjonalnym.
Oto przykład demonstrujący jego użycie:
import { useAtom } z„jotai”;
konst liczbaAtom = atom(1);
funkcjonowaćMój komponent() {
konst [liczba, ustawLiczba] = użyj Atomu (liczbaAtomów);
konst przyrost = () => setCount((prevCount) => prevLiczba + 1);
powrót (Liczba: {liczba}</p>
W tym przykładzie użyj Atomu hak służy do uzyskiwania dostępu do liczbaAtom atom i związana z nim wartość. The liczba ustaw służy do aktualizacji wartości atomu, a wszelkie powiązane komponenty zostaną automatycznie ponownie wyrenderowane ze zaktualizowaną wartością.
Uruchamiając tylko komponenty, których dotyczy problem, zmniejsza niepotrzebne ponowne renderowanie w aplikacji. To ukierunkowane podejście do ponownego renderowania zwiększa ogólną wydajność aplikacji.
Pomijając podstawy, zbudujmy prostą aplikację To-do React, aby lepiej zrozumieć możliwości zarządzania stanem Jotai.
Możesz znaleźć kod źródłowy tego projektu w this Repozytorium GitHub.
Zarządzanie stanem w React przy użyciu Jotai
Rozpocząć, stworzyć aplikację React. Alternatywnie możesz użyj Vite do skonfigurowania projektu React. Po zbudowaniu podstawowej aplikacji React, śmiało zainstaluj Jotai w swojej aplikacji.
npm zainstaluj jotai
Następnie, aby wykorzystać Jotai w swojej aplikacji, musisz otoczyć całą aplikację za pomocą Dostawca część. Ten komponent zawiera magazyn, który służy jako centralne centrum dostarczania wartości atomowych w całej aplikacji.
Dodatkowo pozwala zadeklarować stan początkowy atomów. Zawijając swoją aplikację za pomocą Dostawca, wszystkie komponenty w aplikacji uzyskują dostęp do zdefiniowanych atomów, a następnie mogą wchodzić w interakcje i aktualizować stan poprzez użyj Atomu hak.
import { Dostawca } z"jotai";
Teraz zawiń aplikację w indeks.js Lub main.jsx jak pokazano niżej.
import Reagować z'reagować'
import ReactDOM z„reaguj/klient”
import Aplikacja z„./Aplikacja.jsx”
import'./index.css'
import { Dostawca } z"jotai";
ReactDOM.createRoot(dokument.getElementById('źródło')).renderowanie(
</Provider>
</React.StrictMode>,
)
Skonfiguruj magazyn danych
Sklep działa jako centralne repozytorium stanu aplikacji. Zwykle zawiera definicję atomów, selektory i wszelkie inne powiązane funkcje wymagane do zarządzania stanem za pomocą Jotai.
W tym przypadku zarządza atomami do zarządzania listą elementów aplikacji To-do. w źródło katalog, utwórz TodoStore.jsx plik i dodaj poniższy kod.
import { atom } z"jotai";
eksportkonst TodosAtom = atom([]);
Tworząc i eksportując plik TodosAtom, możesz wygodnie wchodzić w interakcje i aktualizować stan zadań do wykonania w różnych komponentach aplikacji.
Zaimplementuj funkcjonalność aplikacji To-Do
Teraz, gdy skonfigurowałeś Jotai w aplikacji React i stworzyłeś atom do zarządzania stanem aplikacji, przejdź naprzód i utwórz prosty komponent zadań do wykonania, który będzie obsługiwał funkcje dodawania, usuwania i edytowania zadań do wykonania rzeczy.
Stwórz nowy komponenty/Todo.jsx plik w źródło informator. W tym pliku dodaj poniższy kod:
- Zaimportuj magazyn danych i użyj Atomu hak.
import Reaguj, { stan użycia } z'reagować';
import { TodosAtom} z„../TodoStore”;
import { useAtom } z„jotai”; - Utwórz komponent funkcjonalny i dodaj elementy JSX.
Komponent udostępnia prosty interfejs użytkownika do zarządzania listą rzeczy do zrobienia.konst Do zrobienia = () => {
powrót (
symbol zastępczy=„Nowe zadanie”
wartość={wartość}
onChange={event => setValue (event.target.value)}
/>
eksportdomyślny Do zrobienia;
- Na koniec zaimplementuj funkcje dodawania i usuwania zadań do wykonania.
konst [wartość, setValue] = useState ('');
konst [todos, setTodos] = useAtom (TodosAtom);konst uchwyt Dodaj = () => {
Jeśli (wartość.przytnij() !== '') {
ustawTodos(poprzedniTodos => [
...poprzedniTodos,
{
ID: Data.Teraz(),
tekst: wartość
},
]);
ustalić wartość('');
}
};konst uchwyt Usuń = ID => {
ustawTodos(poprzedniTodos => prevTodos.filter(do zrobienia => todo.id !== id));
};
The uchwytDodaj Funkcja odpowiada za dodanie nowej pozycji do zrobienia do listy pozycji. Najpierw sprawdza, czy wartość zmiennej nie jest pusta. Następnie tworzy nowy element do wykonania z unikalnym identyfikatorem i wpisanym elementem do wykonania jako treścią.
The ustaw Todos Następnie wywoływana jest funkcja w celu zaktualizowania listy rzeczy do zrobienia w atomie poprzez dodanie nowej pozycji. Wreszcie, wartość stan jest resetowany do pustego ciągu po operacji dodawania.
Z drugiej strony, uchwytUsuń odpowiada za usunięcie pozycji do zrobienia z listy. Odfiltrowuje element do zrobienia przy użyciu określonego identyfikatora z istniejącej listy, wykorzystując metodę prevTodos.filter metoda. Następnie aktualizuje listę za pomocą ustaw Todos funkcja — skutecznie usuwająca określoną pozycję do zrobienia z listy.
Używanie Jotai do zarządzania stanem w aplikacjach React
Ten przewodnik zawiera wprowadzenie do używania Jotai jako rozwiązania do zarządzania stanem. Niemniej jednak istnieją inne wspaniałe funkcje, takie jak możliwość tworzenia atomów asynchronicznych zaprojektowanych specjalnie do zarządzania stanem, który obejmuje operacje asynchroniczne, takie jak wywołania API.
Dodatkowo można również tworzyć pochodne atomy, które służą do obliczania i uzyskiwania wartości z istniejących atomów, umożliwiając zarządzanie złożonymi stanami w oparciu o inne części aplikacji.
Wykorzystując te funkcje zarządzania stanem, możesz tworzyć bardziej niezawodne i skalowalne aplikacje React.