React 16.3.0 został wydany, a Context API nie jest już funkcją eksperymentalną. Dan Abramov (twórca Redux) napisał dobry komentarz tutaj o tym, ale to było 2 lata, gdy kontekst był jeszcze funkcja eksperymentalna.
Moje pytanie jest, w opinii / doświadczeń, kiedy należy używać React Kontekst ponad Reaguj Redux i odwrotnie?
javascript
reactjs
redux
react-redux
react-context
Alfrex92
źródło
źródło
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ą.Odpowiedzi:
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 :
Redux
jest znacznie potężniejszy i zapewnia dużą liczbę funkcji, którychContext Api
nie zapewnia, również jak wspomniał @danAbramovJego 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
lubredux-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
Przy tak wielu aplikacjach jest zbyt wcześnie, aby powiedzieć, że Redux zostanie zastąpiony przez nowy Context API
źródło
Jeśli używasz Redux tylko po to, aby uniknąć przekazywania właściwości do głęboko zagnieżdżonych komponentów , możesz zamienić Redux na
Context
API. Jest dokładnie przeznaczony do tego przypadku użycia.Z drugiej strony, jeśli używasz Redux do wszystkiego innego (mając przewidywalny kontener stanu, obsługując logikę aplikacji poza komponentami, centralizując stan aplikacji, używając Redux DevTools do śledzenia, kiedy, gdzie, dlaczego i jak stan aplikacji zmieniony lub używając wtyczek, takich jak Redux Form , Redux Saga , Redux Undo , Redux Persist , Redux Logger itp.), to nie ma absolutnie żadnego powodu, aby porzucić Redux.
Context
API nie daje nic z tego.Osobiście uważam, że rozszerzenie Redux DevTools jest niesamowitym, niedocenianym narzędziem do debugowania, które samo w sobie usprawiedliwia dalsze korzystanie z Redux.
Niektóre odniesienia:
źródło
Wolę używać redux z redux-thunk do wykonywania wywołań API (również przy użyciu Axios) i wysyłania odpowiedzi do reduktorów. Jest czysty i łatwy do zrozumienia.
Kontekstowy interfejs API jest bardzo specyficzny dla części reaktywnej, opisującej sposób połączenia komponentów React ze sklepem. W tym celu reaktywacja jest dobra. Ale jeśli chcesz, ponieważ Context jest oficjalnie obsługiwany, możesz użyć Context API zamiast React-Redux.
Tak więc pytanie powinno brzmieć: Kontekstowe API vs React-Redux, a nie Kontekstowe API vs Redux. Również pytanie jest nieco uparte. Ponieważ znam React-Redux i używam go we wszystkich projektach, będę go nadal używać. (Nie ma dla mnie zachęty do zmiany).
Ale jeśli uczysz się Redux dopiero dziś i nigdzie go nie używałeś, warto dać Context API szansę i zastąpić React-Redux swoim niestandardowym kodem Context API. Może w ten sposób jest znacznie czystszy.
Osobiście jest to kwestia zażyłości. Nie ma wyraźnego powodu, aby wybierać jedną z nich, ponieważ są one równoważne. I wewnętrznie, react-redux i tak używa Context.
źródło
Jedyne powody, dla których używam Redux dla mnie to:
Prawdopodobnie nie potrzebujesz poziomu pośredniego dla całej aplikacji, więc dobrze jest mieszać style i używać lokalnego stanu / kontekstu i Redux w tym samym czasie.
źródło
Od: Kiedy używać Redux?
źródło