Redux là một container state dễ đoán được xây dựng trên ba nguyên tắc cốt lõi: một store duy nhất, state chỉ đọc chỉ thay đổi qua action, và các reducer thuần tính ra state tiếp theo. Dữ liệu chảy một chiều, khiến các thay đổi dễ truy vết.
Ba nguyên tắc
1. Single source of truth — toàn bộ state của app nằm trong MỘT object store
2. State là chỉ đọc — bạn không bao giờ mutate nó; bạn DISPATCH action để thay đổi
3. Thay đổi qua reducer thuần — (state, action) => newState, không có side effect
