- vừa được xem lúc

Cách tối ưu hóa ứng dụng React để cải thiện hiệu suất

0 0 3

Người đăng: Thái Thịnh

Theo Viblo Asia

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!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm hiểu về Redux Thunk

Chào mọi người, nếu bạn là người đã biết về React và đang làm quen với Redux chắc hẳn bạn đang rất mơ hồ về các khái niệm cơ bản của Redux như dispatch, store, action creator,... bạn còn đang vật lộn với đống document của Redux để hiểu những khái niệm đó và bạn nghe ai đó trong team nói về Redux Thu

0 0 403

- vừa được xem lúc

[React] Giới thiệu tổng quát về Redux Toolkit

1. Redux Toolkit (RTK) là gì và tại sao lại có nó. . .

0 0 6.7k

- vừa được xem lúc

Uống Pepsi code Vue đi - Uống Cocacola code React nha ;)

. (Nguồn ảnh: Internet). Chào các bạn, chào các bạn. Let's go . 1.

0 0 153

- vừa được xem lúc

Cài đặt taillwind css cho dự án React

Trong bài viết cùng mình tìm hiểu cách cài đặt tailwind css cho một dự án React sẵn có. .

0 0 153

- vừa được xem lúc

Formik vs React Hook Form (Phần 1)

Các lập trình viên Front End đều làm việc rất nhiều với form cùng sự phức tạp của ứng dụng. Do vậy chúng ta cần những thư viện form mạnh mẽ hỗ trợ quản lý các form state, form validation... Thành phần module. Formik bao gồm có 9 dependencies khác. . React Hook Form thì không có.

0 0 376

- vừa được xem lúc

Hướng dẫn React Redux cho người mới bắt đầu - Phần 1

Lời mởi đầu. Chào các bạn, ở thời điểm thực hiện bài viết này mình cũng là một người đang bắt đầu tìm hiểu và học với ReactJs và Redux, trong quá trình tìm hiểu đọc các tài liệu về thư viện này mình có tìm được một bài hướng dẫn khá hay nên đã quyết định chia sẻ với mọi người .

0 0 287