Redux-Thunk
3 minuty czytania
Redux-Thunk to biblioteka, która pozwala na wykonywanie operacji asynchronicznych w aplikacji opartej na Redux. Jest to jedno z najpopularniejszych rozszerzeń Redux, które pozwala na proste i czytelne zarządzanie stanem aplikacji.
Redux-Thunk jest dodatkiem do biblioteki Redux. Hostowany jako oddzielna paczka w NPM, jest możliwy do pobrania i ustawienia jako middleware przy inicjalizacji Redux bez skomplikowanej konfiguracji. Pozwala uzyskać asynchroniczność zapytań. Middleware'y w redux pozwalają przechwycić zapytanie i zamiast wykonać pojedynczą zmianę na storze może wykonać serię zapytań, w międzyczasie mogą odpytać API po zewnętrzne dane. Całość jest możliwa, do uzyskania bez Redux-Thunk, ale ten znacznie to ułatwia.
Przykładowe zapytanie w Redux-Thunk
Najprostszym przykładem wykorzystania Redux-Thunk będzie zapytanie do API w celu zalogowania użytkownika. Aby zapytanie przebiegło poprawnie musi wydarzyć się parę rzeczy.
1. Ustawienie stanu aplikacji, że logowanie się rozpoczęło.
2. Wysłanie zapytania do API
3. Ustawienie danych użytkownika w store
4. Ewentualne zwrócenie błędu
export const authLogin = (email, password) => {
return dispatch => {
dispatch(authStart());
axios
.post(`${API_URL}/auth/api/v1/login/`, {
email: email,
password: password
})
.then(res => {
const token = res.data.token;
const user = res.data.user;
dispatch(authSuccess(token, user));
})
.catch(err => {
dispatch(authFail(err));
});
};
};
Dzięki takiemu podejściu możemy wyizolować część logiki naszej aplikacji do pojedynczej funkcji. Możemy wykorzystać mockowanie danych z API i w pełni przetestować działanie takiego Thunka.
Obsługa błędów w Redux-Thunk
W każdej aplikacji korzystającej z asynchronicznych zapytań do API istotne jest odpowiednie zarządzanie błędami, aby zapewnić użytkownikowi jak najlepsze doświadczenie. Redux-Thunk pozwala na obsługę błędów w sposób elastyczny, umożliwiając zarówno reakcję na błędy w samych akcjach, jak i ich propagowanie do komponentów.
Jednym z kluczowych podejść jest przechwytywanie błędów bezpośrednio w funkcji thunk i aktualizowanie stanu aplikacji tak, aby można było np. wyświetlić komunikat o błędzie. Można również wykorzystać różne poziomy obsługi błędów – od prostych komunikatów po zaawansowane mechanizmy ponawiania zapytań (retry) czy globalne zarządzanie błędami.
Ważne jest także rozróżnianie typów błędów – niektóre mogą wynikać z problemów po stronie serwera (np. błędy HTTP 500), inne z braku połączenia internetowego, a jeszcze inne mogą być spowodowane niepoprawnymi danymi wejściowymi. Dzięki Redux-Thunk możliwe jest dostosowanie logiki obsługi błędów do konkretnych przypadków i odpowiednie reagowanie, np. poprzez automatyczne przekierowanie użytkownika, wyświetlenie powiadomienia lub zapisanie błędu w logach.
Dobrą praktyką jest także przechowywanie informacji o statusie zapytania w stanie Redux – dzięki temu aplikacja może dynamicznie reagować, np. poprzez wyświetlanie wskaźnika ładowania podczas przetwarzania zapytania i ukrywanie go w przypadku sukcesu lub błędu. Odpowiednia obsługa błędów w Redux-Thunk poprawia nie tylko stabilność aplikacji, ale także jej użyteczność i doświadczenie użytkownika.
Dlaczego warto używać Redux-Thunk?
Redux-Thunk to jedno z najpopularniejszych middleware do obsługi operacji asynchronicznych w Redux. Jego główną zaletą jest prostota i elastyczność w zarządzaniu żądaniami sieciowymi i innymi asynchronicznymi działaniami, które wymagają interakcji z Redux Store. Oto kilka kluczowych powodów, dla których warto używać Redux-Thunk:
- Łatwa obsługa operacji asynchronicznych
Redux sam w sobie obsługuje tylko synchroniczne akcje, co oznacza, że nie można bezpośrednio wysyłać żądań API w akcjach Redux. Redux-Thunk rozwiązuje ten problem, umożliwiając tworzenie funkcji akcji, które wykonują operacje asynchroniczne, a następnie aktualizują Store po ich zakończeniu. - Większa kontrola nad przepływem akcji
Dzięki Redux-Thunk możemy wstrzymywać, modyfikować lub anulować akcje w zależności od stanu aplikacji. Na przykład możemy zaimplementować warunek sprawdzający, czy dane są już załadowane, zanim wykonamy kolejne żądanie API, co pomaga uniknąć niepotrzebnych zapytań. - Obsługa efektów ubocznych w jednym miejscu
Redux-Thunk pozwala na scentralizowanie logiki związanej z efektami ubocznymi, takimi jak pobieranie danych, zapisywanie do lokalnej pamięci czy interakcje z API. Dzięki temu logika biznesowa nie jest rozsiana po komponentach, co sprawia, że kod jest bardziej czytelny i łatwiejszy w utrzymaniu. - Prostota w porównaniu do alternatyw
W przeciwieństwie do bardziej zaawansowanych rozwiązań, takich jak Redux-Saga czy Redux-Observable, Redux-Thunk jest stosunkowo prosty w użyciu i nie wymaga nauki dodatkowych koncepcji, takich jak generatory czy RxJS. Jest to szczególnie korzystne dla osób, które dopiero zaczynają pracę z Redux. - Łatwe testowanie akcji i reduktorów
Redux-Thunk pozwala na łatwe testowanie funkcji asynchronicznych, ponieważ możemy testować je niezależnie od komponentów. Możemy także sprawdzać, czy dane akcje zostały poprawnie wywołane i czy stan Redux Store został odpowiednio zmodyfikowany po wykonaniu zapytania.
Podsumowując, Redux-Thunk jest lekkim i skutecznym rozwiązaniem, które doskonale sprawdza się w aplikacjach React korzystających z Redux. Jego prostota, elastyczność i łatwość implementacji sprawiają, że jest jednym z najczęściej wybieranych middleware do zarządzania efektami ubocznymi.
SPRAWDŹ SWOJĄ WIEDZE Z TEMATU redux-thunk
Pytanie
1/5
Alternatywy do Redux-thunk
Alternatywą do Redux-thunk jest Context API, które jest wbudowane bezpośrednio w bibliotekę React. Zapytania asynchroniczne możemy z łatwością tam utworzyć. Praktyczną różnicę zobaczymy dopiero, gdy Context API będzie obsługiwać spory obiekt, w którym będziemy często aktualizować parametry. Może się okazać, że Context API jest wtedy mniej wydajny i zbyt często uruchamia aktualizacje DOM.
Mimo, że Redux jest oddzielną biblioteką to posiada bogatą dokumentację z dobrze opisanymi przykładami. Przykładów dla Redux-Thunk też jest dużo i jest zdecydowanie produkcyjnym rozwiązaniem do utrzymywania stanu aplikacji.
Nasza oferta
Web development
Dowiedz się więcejMobile development
Dowiedz się więcejE-commerce
Dowiedz się więcejProjektowanie UX/UI
Dowiedz się więcejOutsourcing
Dowiedz się więcejPowiązane artykuły
Perceptual Design: Jak projektować z myślą o ludzkich zmysłach
8 paź 2025
W świecie przeładowanym bodźcami wizualnymi i informacyjnymi to, co naprawdę przyciąga uwagę, to doświadczenie, które czujemy. Perceptual Design to podejście do projektowania, które wychodzi poza estetykę i funkcjonalność, skupiając się na tym, jak człowiek postrzega świat poprzez swoje zmysły. Łączy wiedzę z psychologii, neuronauki i sztuki, by tworzyć produkty, które są naturalne, intuicyjne i emocjonalnie angażujące. To sposób projektowania, który nie tylko wygląda dobrze - ale odpowiada temu, jak naprawdę działa ludzki mózg.

Czym jest Spryker? Nowoczesna platforma e-commerce dla biznesu B2B i B2C
7 paź 2025
Dynamiczny rozwój handlu cyfrowego sprawia, że firmy muszą nie tylko nadążać za oczekiwaniami klientów, ale także szybko reagować na zmiany rynkowe. Tradycyjne platformy e-commerce często okazują się zbyt mało elastyczne, by sprostać tym wyzwaniom. Właśnie dlatego coraz większą popularność zyskują rozwiązania typu composable i headless commerce, które pozwalają budować systemy dopasowane do indywidualnych potrzeb. Jednym z liderów tego nowoczesnego podejścia jest Spryker – platforma stworzona z myślą o firmach B2B i B2C, które chcą rozwijać się szybciej i bardziej elastycznie niż kiedykolwiek wcześniej.
Nano Banana – rewolucja w tworzeniu grafiki z pomocą sztucznej inteligencji
6 paź 2025
Tworzenie grafiki nigdy nie było tak proste – dzięki sztucznej inteligencji granica między pomysłem a gotowym obrazem właściwie znika. Nano Banana, najnowsze narzędzie od Google, pozwala generować i edytować obrazy przy użyciu zwykłych poleceń tekstowych. To potężny model AI, który rozumie kontekst, styl i estetykę, a efekty jego pracy potrafią zaskoczyć nawet zawodowych grafików.
Dlaczego Composability zmienia sposób tworzenia aplikacji?
5 paź 2025
W świecie technologii tempo zmian rośnie szybciej niż kiedykolwiek wcześniej, a tradycyjne modele tworzenia aplikacji coraz częściej przestają nadążać za potrzebami biznesu. Firmy szukają sposobów, by budować rozwiązania bardziej elastyczne, skalowalne i łatwe w rozwoju. Odpowiedzią na te wyzwania staje się Composability - podejście, które pozwala składać aplikacje z niezależnych, współpracujących ze sobą komponentów niczym z klocków LEGO. To nie tylko techniczna innowacja, ale prawdziwa zmiana paradygmatu w myśleniu o tym, jak projektujemy i rozwijamy oprogramowanie.
Sztuczna inteligencja w rekomendacjach produktów: jak AI zwiększa sprzedaż w e-commerce
4 paź 2025
W dzisiejszym świecie e-commerce klienci oczekują doświadczenia zakupowego dopasowanego dokładnie do ich potrzeb i preferencji. Sztuczna inteligencja odgrywa w tym kluczową rolę, umożliwiając sklepom internetowym tworzenie inteligentnych systemów rekomendacji, które potrafią przewidzieć, czego użytkownik szuka – często zanim sam to uświadomi. Dzięki analizie danych i uczeniu maszynowemu, AI nie tylko zwiększa sprzedaż, ale też buduje lojalność klientów i wzmacnia ich zaufanie do marki.
Realtor App: Nowoczesne narzędzie dla każdego pośrednika nieruchomości
3 paź 2025
Dynamiczny rozwój technologii nie ominął branży nieruchomości - dziś skuteczny pośrednik to nie tylko ekspert od rynku, ale także użytkownik nowoczesnych narzędzi cyfrowych. Aplikacje mobilne i webowe dla agentów stały się nieodłącznym elementem pracy, ułatwiając zarządzanie ofertami, kontakt z klientami i organizację codziennych obowiązków. Dzięki nim proces sprzedaży lub wynajmu nieruchomości przebiega szybciej, sprawniej i bardziej profesjonalnie.
Commerce as a Service: Przyszłość e-commerce w modelu chmurowym
2 paź 2025
E-commerce przechodzi obecnie jedną z największych transformacji od czasu swojego powstania. Tradycyjne, monolityczne platformy sprzedażowe ustępują miejsca rozwiązaniom chmurowym, które oferują elastyczność i szybkość działania. Commerce as a Service (CaaS) to nowy model, który pozwala firmom budować własny ekosystem sprzedaży w oparciu o modułowe usługi dostępne przez API.
Zobacz wszystkie artykuły