Da Context keine experimentelle Funktion mehr ist und Sie Context direkt in Ihrer Anwendung verwenden können, eignet es sich hervorragend, um Daten an tief verschachtelte Komponenten weiterzugeben, für die sie entwickelt wurden.
Wie Mark Erikson in seinem Blog geschrieben hat :
Wenn Sie Redux nur verwenden, um die Weitergabe von Requisiten zu vermeiden, könnte der Kontext Redux ersetzen - aber dann haben Sie Redux wahrscheinlich überhaupt nicht benötigt.
Der Kontext bietet Ihnen auch nicht Redux DevTools
die Möglichkeit, Ihre Statusaktualisierungen zu verfolgen, middleware
eine zentralisierte Anwendungslogik hinzuzufügen und andere leistungsstarke Funktionen, die dies Redux
ermöglichen.
Redux
ist viel leistungsfähiger und bietet eine große Anzahl von Funktionen, die Context Api
das nicht bietet, auch wie @danAbramov erwähnt
React Redux verwendet den Kontext intern, macht diese Tatsache jedoch in der öffentlichen API nicht sichtbar. Sie sollten sich also viel sicherer fühlen, wenn Sie den Kontext über React Redux verwenden, als direkt, denn wenn er sich ändert, liegt die Last für die Aktualisierung des Codes bei React Redux und nicht bei Ihnen.
Es liegt an Redux, die Implementierung tatsächlich zu aktualisieren, um sie an die neueste Kontext-API anzupassen
Die neueste Kontext-API kann für Anwendungen verwendet werden, bei denen Sie lediglich Redux verwenden würden, um Daten zwischen Komponenten zu übertragen. Anwendungen, die zentralisierte Daten verwenden und API-Anforderungen in Aktionserstellern verarbeiten, die Redux verwenden redux-thunk
oder redux-saga
noch benötigen, benötigen jedoch Redux. Abgesehen von diesem Redux sind weitere Bibliotheken zugeordnet, mit redux-persist
denen Sie Speicherdaten in localStorage speichern und beim Aktualisieren rehydrieren können. Dies wird von der Kontext-API immer noch nicht unterstützt.
Wie @dan_abramov in seinem Blog erwähnt hat, benötigen Sie möglicherweise kein Redux , dieses Redux hat eine nützliche Anwendung wie
- Behalten Sie den Status in einem lokalen Speicher bei und starten Sie ihn sofort.
- Füllen Sie den Status auf dem Server vorab aus, senden Sie ihn in HTML an den Client und starten Sie ihn sofort.
- Serialisieren Sie Benutzeraktionen und hängen Sie sie zusammen mit einem Status-Snapshot an automatisierte Fehlerberichte an, damit die Produktentwickler sie erneut
abspielen können, um die Fehler zu reproduzieren.
- Übergeben Sie Aktionsobjekte über das Netzwerk, um kollaborative Umgebungen zu implementieren, ohne dass sich die Schreibweise des Codes dramatisch ändert.
- Behalten Sie einen Rückgängig-Verlauf bei oder implementieren Sie optimistische Mutationen, ohne die Schreibweise des Codes dramatisch zu ändern.
- Wechseln Sie zwischen dem Statusverlauf in der Entwicklung und bewerten Sie den aktuellen Status aus dem Aktionsverlauf neu, wenn sich der Code ändert, a la TDD.
- Bieten Sie den Entwicklungswerkzeugen umfassende Inspektions- und Kontrollfunktionen, damit Produktentwickler benutzerdefinierte Tools für ihre
Apps erstellen können .
- Stellen Sie alternative Benutzeroberflächen bereit, während Sie den größten Teil der Geschäftslogik wiederverwenden.
Bei diesen vielen Anwendungen ist es viel zu früh zu sagen, dass Redux durch die neue Kontext-API ersetzt wird
duix
npm-Paket. Es ist nur ein einfacher State Manager mit Rückrufen, der wirklich einfach zu implementieren ist. Um ganz klar zu sein: Ich bin der Schöpfer.