Ponieważ kontekst nie jest już funkcją eksperymentalną i możesz używać go bezpośrednio w swojej aplikacji i będzie świetny do przekazywania danych do głęboko zagnieżdżonych komponentów, do których został zaprojektowany.
Jak napisał Mark Erikson na swoim blogu :
Jeśli używasz Reduksa tylko po to, aby uniknąć przekazywania rekwizytów, kontekst może zastąpić Redux - ale wtedy prawdopodobnie nie potrzebowałeś Reduksa w pierwszej kolejności.
Kontekst również nie daje Ci niczego podobnego Redux DevTools
, możliwości śledzenia aktualizacji stanu, middleware
dodawania scentralizowanej logiki aplikacji i innych potężnych możliwości, które Redux
umożliwiają.
Redux
jest znacznie potężniejszy i zapewnia dużą liczbę funkcji, których Context Api
nie zapewnia, również jak wspomniał @danAbramov
React Redux używa kontekstu wewnętrznie, ale nie ujawnia tego faktu w publicznym API. Więc powinieneś czuć się znacznie bezpieczniej, używając kontekstu przez React Redux niż bezpośrednio, ponieważ jeśli to się zmieni, ciężar aktualizacji kodu będzie spoczywał na React Redux, a nie na tobie.
Jego upto Redux, aby faktycznie zaktualizować swoją implementację, aby była zgodna z najnowszym kontekstowym API
Najnowszy kontekstowy interfejs API może być używany w aplikacjach, w których po prostu używałbyś Redux do przekazywania danych między komponentami, jednak aplikacje, które używają scentralizowanych danych i obsługują żądania API w Action, twórcy używający redux-thunk
lub redux-saga
nadal potrzebują redukcji. Oprócz tego redux ma powiązane inne biblioteki, takie jak, redux-persist
które pozwalają na zapisywanie danych przechowywania w localStorage i ponowne nawadnianie przy odświeżaniu, czego wciąż nie obsługuje kontekstowe API.
Jak @dan_abramov wspomniał na swoim blogu, możesz nie potrzebować Redux , ten redux ma użyteczną aplikację, taką jak
- Utrwal stan w lokalnej pamięci, a następnie uruchom z niej, po wyjęciu z pudełka.
- Wypełnij wstępnie stan serwera, wyślij go do klienta w formacie HTML i uruchom z niego po wyjęciu z pudełka.
- Serializuj działania użytkownika i dołączaj je, wraz z migawką stanu, do automatycznych raportów o błędach, aby twórcy produktu
mogli je odtworzyć w celu odtworzenia błędów.
- Przekaż obiekty akcji przez sieć, aby zaimplementować środowiska współpracy bez radykalnych zmian w sposobie pisania kodu.
- Zachowaj historię cofania lub wdrażaj optymistyczne mutacje bez dramatycznych zmian w sposobie pisania kodu.
- Podróżuj między tworzoną historią stanu i ponownie oceniaj bieżący stan z historii akcji, gdy kod się zmienia, a la TDD.
- Zapewnij pełne możliwości inspekcji i kontroli narzędzi programistycznych, aby deweloperzy produktów mogli tworzyć niestandardowe narzędzia dla swoich
aplikacji.
- Zapewnij alternatywne interfejsy użytkownika, wykorzystując ponownie większość logiki biznesowej.
Przy tak wielu aplikacjach jest zbyt wcześnie, aby powiedzieć, że Redux zostanie zastąpiony przez nowy Context API
duix
pakiet npm. To tylko prosty menedżer stanu z wywołaniami zwrotnymi, naprawdę łatwy do wdrożenia. Żeby było jasne: jestem twórcą.