Redux è un contenitore di stato prevedibile costruito su tre principi fondamentali: un singolo store, uno stato in sola lettura modificabile solo tramite azioni, e reducer puri che calcolano lo stato successivo. I dati scorrono in una sola direzione, rendendo i cambiamenti tracciabili.
I tre principi
1. Single source of truth — the whole app's state lives in ONE store object
2. State is read-only — you never mutate it; you DISPATCH actions to change it
3. Changes via pure reducers — (state, action) => newState, no side effects
