Context là cơ chế truyền giá trị xuống cây component (dependency injection), không phải state manager. Bản thân nó không lưu state — state vẫn nằm ở useState/useReducer của Provider.
Ba thứ nó không có:
- Không có selector. Mọi consumer của một context re-render khi giá trị context đổi, dù chỉ đọc một field. Store thật cho phép
useStore(s => s.count)để chỉ subscribe phần cần. - Không có tối ưu cập nhật. Nếu
value={{ user, setUser }}là object mới mỗi lần render Provider, toàn bộ subtree consumer re-render theo. - Không có hệ sinh thái — devtools/time-travel, middleware, persist, đọc state ngoài React.
Cách dùng đúng: Context hợp cho dữ liệu ít thay đổi và cần ở khắp nơi (theme, locale, session). Với state đổi liên tục, hoặc tách một context "giá trị" và một context "hàm dispatch" (hàm ổn định nên consumer chỉ-dispatch không re-render), hoặc dùng store có selector.