Flux is an architecture that complements React and uses unidirectional data flow to manage application state. It has four main components: Actions, a Dispatcher, Stores, and Controller Views. Actions are helper methods that pass data to the Dispatcher. The Dispatcher broadcasts payloads to registered callbacks in Stores, which contain application state and logic. Controller Views are React components that retrieve state from Stores and pass it as props to child components.