+19

Tối Ưu State & Quản Lý Đơn Giản Trong React

Trong React, state là nơi lưu trữ dữ liệu giúp giao diện hiển thị đúng theo từng tình huống. Nhưng nếu quản lý không tốt, ứng dụng sẽ bị chậm, khó bảo trì, và render lại nhiều lần không cần thiết.

Dưới đây là một vài cách đơn giản mà hiệu quả để tối ưu state:

1. Dùng useState đúng chỗ

Chỉ dùng useState khi state đó chỉ dùng trong một component. Nếu bạn cần chia sẻ state giữa nhiều component, hãy dùng context hoặc state toàn cục.

const [count, setCount] = useState(0);

2. Không đưa tất cả state lên component cha

Đừng “gom” hết state vào component lớn. Hãy để mỗi phần của giao diện quản lý state riêng của nó, trừ khi cần chia sẻ.

✅ Tốt:

<Header />
<Sidebar />
<Content />

Mỗi component tự quản lý state riêng nếu không liên quan đến nhau.

3. Dùng useContext khi nhiều component cần chung 1 state

Ví dụ: thông tin người dùng, theme, ngôn ngữ...
Tạo một context để dùng chung.

const UserContext = createContext();

<UserContext.Provider value={user}>
  <ComponentA />
</UserContext.Provider>

4. Tránh render lại không cần thiết

Khi truyền props xuống component con, nên dùng React.memo để tránh render lại nếu props không đổi.

const Button = React.memo(({ onClick }) => {
  return <button onClick={onClick}>Click me</button>;
});

✅ Tổng Kết

  • Dùng useState cho dữ liệu nhỏ, riêng từng component.
  • Dùng useContext nếu nhiều component cần dùng chung.
  • Tránh đưa tất cả state lên cha nếu không cần thiết.
  • Dùng React.memo để tối ưu hiệu năng.

🔚 Kết Luận

Quản lý state đúng cách trong React giúp ứng dụng chạy mượt hơn, dễ hiểu hơn và dễ phát triển về sau. Bạn không cần dùng đến những thư viện phức tạp ngay từ đầu — chỉ cần biết khi nào nên dùng useState, khi nào cần context, và tránh render lại không cần thiết là đủ để bắt đầu tối ưu hiệu quả. Khi dự án lớn dần, bạn có thể cân nhắc thêm các công cụ như Zustand hay Redux để quản lý state toàn cục tốt hơn.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí