Cách tối ưu hóa ứng dụng React để cải thiện hiệu suất
Bạn đã từng xây dựng một ứng dụng React nhưng cảm thấy nó chạy chậm?
Người dùng luôn mong đợi trải nghiệm nhanh và mượt mà. Hiệu suất kém có thể khiến họ rời đi ngay lập tức. Vậy làm thế nào để ứng dụng React của bạn chạy nhanh như chớp?
1. Sử dụng React.memo()
để tránh render không cần thiết
React thường re-render các component không cần thiết, làm chậm ứng dụng.
Giải pháp? Dùng React.memo()
để ghi nhớ kết quả render trước đó và tránh cập nhật không cần thiết!
Ví Dụ:
const FastComponent = React.memo(({ data }) => {
return <div>{data}</div>;
});
👉 Dùng cho các component không cần cập nhật thường xuyên!
2. Tải chậm (Lazy Load) component với React.lazy()
Không cần tải toàn bộ ứng dụng cùng một lúc! Lazy loading giúp tải component chỉ khi cần thiết, giảm thời gian tải ban đầu.
Ví dụ:
const LazyComponent = React.lazy(() => import("./MyComponent"));
👉 Kết hợp với Suspense để có hiệu ứng tải mượt mà!
3. Tối ưu hình ảnh & sử dụng Lazy Loading
Hình ảnh dung lượng lớn = ứng dụng chạy chậm. Hãy dùng định dạng nén như WebP và lazy load hình ảnh để tối ưu hiệu suất!
Ví dụ lazy loading hình ảnh trong React:
<img src="image.webp" loading="lazy" alt="Optimized Image" />
Bonus: Sử dụng CDN để tải hình ảnh nhanh hơn!
4. Tránh hàm inline & sử dụng useCallback()
Hàm inline trong component có thể gây re-render không cần thiết. Hãy bọc hàm trong useCallback() để tối ưu hiệu suất.
Ví dụ:
const handleClick = useCallback(() => {
console.log("Clicked!");
}, []);
Giúp tránh tạo lại function mỗi lần component render!
5. Dùng Virtualization cho danh sách lớn (react-window)
Render danh sách lớn có thể làm chậm ứng dụng. Virtualization đảm bảo chỉ render các mục đang hiển thị trên màn hình.
Ví dụ với react-window:
import { FixedSizeList } from "react-window";
const MyList = ({ items }) => (
<FixedSizeList height={500} width={300} itemSize={50} itemCount={items.length}>
{({ index, style }) => <div style={style}>{items[index]}</div>}
</FixedSizeList>
);
Điều này giúp tăng tốc đáng kể cho danh sách lớn!
Tổng kết
Tối ưu ứng dụng React không chỉ giúp cải thiện tốc độ mà còn nâng cao trải nghiệm người dùng.
✔️ Dùng React.memo()
để tránh render lại
✔️ Lazy load component & hình ảnh
✔️ Dùng useCallback()
để tối ưu hàm
✔️ Virtualize danh sách lớn với react-window
Bạn thường dùng kỹ thuật nào nhất? Hãy chia sẻ ý kiến của bạn bên dưới!
All Rights Reserved