Redux ist eine Bibliothek zur Verwaltung des Zustands (States) in JavaScript-Anwendungen. Sie wird häufig in Kombination mit React, aber auch mit anderen Frameworks und Bibliotheken wie Angular und Vue.js verwendet.
Im Redux-Konzept besitzt eine Anwendung einen zentralen Store, in dem der komplette Zustand der Anwendung gehalten wird. Dieser Zustand ist nur dann veränderbar, wenn man Aktionen an den Store sendet, um bestimmte Änderungen vorzunehmen. Diese Aktionen werden durch spezielle Funktionen, die sogenannten Reducer, ausgeführt.
Reducer sind reine Funktionen (pure functions), die den aktuellen Zustand und eine Aktion als Argumente erhalten und einen neuen Zustand zurückgeben. Ein wichtiger Grundsatz dabei ist, dass Reducer den alten Zustand nie direkt verändern, sondern immer eine Kopie erstellen, diese dann modifizieren und zurückgeben.
Die Hauptvorteile von Redux bestehen darin, dass Zustandsänderungen vorhersehbar und transparent sind (dank der Reducer) und der Zustand an einer zentralen Stelle verwaltet wird. Dadurch lassen sich komplexe Anwendungszustände besser handhaben und debuggen.