Dùng spread operator để tạo bản sao ở mỗi cấp: setState(prev => ({ ...prev, user: { ...prev.user, name: 'new' } })).
- Với nested sâu, xem xét dùng Immer library cho phép viết code mutate nhưng tạo immutable update dưới hood.
- Cấu trúc state phẳng (flat) cũng giúp tránh vấn đề này.