Zustand macht mehr Sinn, wenn Ihr globaler Zustand überwiegend UI-Zustand ist_
Redux hat nach wie vor echte Stärken, aber viele React-Apps sind mit einem leichteren Store für UI-Zustände und einem separaten Tool für Serverzustände besser bedient.
Redux ist nicht das falsche Werkzeug. Es ist nur sehr oft das schwerere Werkzeug.
In vielen modernen React-Apps sind die größten globalen Zustandsbedürfnisse keine ereignisgesteuerten Domänen-Workflows. Es handelt sich um Dinge wie:
modaler Zustand
Seitenleisten-Zustand
aktive Filter
Benutzereinstellungen
Für diese Art von Zustand fühlt sich Zustand oft sauberer an, weil es Ihnen einen kleinen externen Store ohne die Umstände von Reducern, Aktionen und Provider überall bietet.
Teams geraten in Schwierigkeiten, wenn sie zu viel Serverzustand im selben globalen Store speichern. Gecachete API-Ergebnisse, Neuladeverhalten, optimistische Updates, Ungültigmachung und Hintergrundsynchronisierung werden in der Regel besser durch Serverzustands-Tools wie React Query gehandhabt.
Das bedeutet, dass die moderne Trennung oft so aussieht:
Zustand für UI-Zustände
React Query für Serverzustände
Das ist nützlicher, als zu versuchen, einen Store auszuwählen, der alles verwaltet.
Abwägungen
Redux macht nach wie vor Sinn, wenn:
Zustandsübergänge eine strenge Struktur benötigen
das Team explizites, ereignisgesteuertes Zustandsmodellieren wünscht
Werkzeuge rund um Reducer und Middleware von Wert sind
Zustand macht Sinn, wenn Einfachheit und selektive Abonnements der größere Gewinn sind.