RTK eliminates Redux boilerplate via createSlice, createAsyncThunk, và RTK Query.
Ba nguyên tắc cốt lõi của Redux:
- Single source of truth — toàn bộ state nằm trong một store duy nhất, giúp đồng bộ data giữa các component và dễ serialize/restore state (ví dụ: lưu state vào localStorage rồi hydrate lại khi reload).
- State is read-only — không được mutate state trực tiếp, chỉ thay đổi qua dispatch action, điều này tạo ra audit trail rõ ràng cho mọi thay đổi, là nền tảng để Redux DevTools time-travel hoạt động.
- Changes are made with pure functions — reducer phải là pure function, cùng input luôn cho cùng output, không có side effects. Pitfall phổ biến: vi phạm nguyên tắc
- bằng cách gọi API hoặc
Date.now()trong reducer — side effects phải nằm trong middleware (thunk/saga). Nhiều developer mới cũng vi phạm nguyên tắc - bằng cách
state.items.push(item)trong Redux thuần — chỉ Redux Toolkit với Immer mới cho phép cú pháp này