Làm Sao Để React Nhanh Hơn? 7 Mẹo Dễ Áp Dụng

0 0 0

Người đăng: Thanh Hung

Theo Viblo Asia

React là một thư viện mạnh mẽ cho việc xây dựng giao diện người dùng. Tuy nhiên, nếu không tối ưu đúng cách, ứng dụng React có thể trở nên chậm chạp, đặc biệt khi ứng dụng lớn dần lên. Dưới đây là những cách hiệu quả giúp bạn tối ưu tốc độ tải trang trong ứng dụng React.

1. Code Splitting (Tách mã theo nhu cầu)

Vấn đề: React bundle mặc định có thể rất lớn, khiến người dùng phải tải toàn bộ app dù chỉ cần xem 1 trang.

Giải pháp: Dùng React.lazySuspense để chỉ tải component khi cần.

import React, { Suspense } from 'react'; const Dashboard = React.lazy(() => import('./Dashboard')); function App() { return ( <Suspense fallback={<div>Đang tải...</div>}> <Dashboard /> </Suspense> );
}

2. Lazy load hình ảnh và component phụ

Vấn đề: Hình ảnh hoặc component nặng không cần thiết hiển thị ngay vẫn được tải.

Giải pháp: Dùng react-intersection-observer hoặc next/image để lazy load.

import { useInView } from 'react-intersection-observer'; const LazyImage = ({ src, alt }) => { const { ref, inView } = useInView({ triggerOnce: true }); return ( <div ref={ref}> {inView ? <img src={src} alt={alt} /> : <div>Đang tải ảnh...</div>} </div> );
};

3. Tối ưu bundle bằng Tree Shaking

Vấn đề: Bundle chứa cả phần code không dùng đến.

Giải pháp:

  • Tránh import toàn bộ thư viện (VD: import _ from 'lodash') → dùng lodash-es hoặc import hàm cần thiết.
  • Dùng Webpack/Vite có hỗ trợ tree shaking.

4. Memo hóa Component và Hàm

Vấn đề: Component render lại không cần thiết khi props không thay đổi.

Giải pháp: Dùng React.memo, useMemo, useCallback đúng cách.

const ExpensiveComponent = React.memo(({ data }) => { // chỉ render lại khi `data` thay đổi
});

5. Tối ưu việc gọi API & xử lý dữ liệu

  • Dùng pagination hoặc infinite scroll thay vì tải toàn bộ dữ liệu.
  • Cache dữ liệu với React Query, SWR.
  • Tránh xử lý dữ liệu nặng trong render, dùng useMemo.

6. Phân tích và theo dõi hiệu năng

  • Dùng công cụ:
    • Lighthouse (Chrome DevTools)
    • React DevTools Profiler
    • Web Vitals (FCP, LCP, CLS...)

7. Dùng SSR hoặc SSG (nếu có thể)

Với Next.js: SSR (Server Side Rendering) hoặc SSG (Static Site Generation) giúp tối ưu tốc độ và SEO tốt hơn.

🔚Kết luận

Tối ưu việc load trang trong React là sự kết hợp giữa:

  • Tối ưu bundle
  • Giảm tải tài nguyên không cần thiết
  • Giảm render thừa
  • Tải tài nguyên đúng lúc, đúng nơi

Hãy bắt đầu từ những cách đơn giản như React.lazy, React.memo, sau đó nâng cấp lên SSR hoặc theo dõi hiệu năng với tool chuyên dụng.

Bình luận

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

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

Những điều cần lưu ý và sử dụng Hook trong React (Phần 5)

V. Sử dụng useRef như thế nào cho đúng.

0 0 145

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

7 Cách viết code React "clean" hơn

Mở đầu. Là nhà phát triển React, tất cả chúng ta đều muốn viết code sạch hơn, đơn giản hơn và dễ đọc hơn. 1. Sử dụng JSX shorthands.

0 0 203

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

Create app covid-19 use Reactjs

Chào các bạn hôm nay mình sẽ chia sẻ với các bạn một app covid-19, để mọi người cùng tham khảo, tính năng của App này chỉ đơn giản là show số liệu về dịch Covid của các nước trên thế giới như: Số ngườ

0 0 58

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

ReactJS Custom Hooks

ReactJS cung cấp rất nhiều cho bạn các hook mà bạn có thể sử dụng hằng ngày vào project của mình. Nhưng bên cạnh đó bạn có thể tự tạo ra các hook của riêng bạn để sử dụng, làm cho việc tối ưu hóa code

0 0 82

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

3 cách để tránh re-render khi dùng React context

3 cách để tránh re-render khi dùng React context. Nếu đã từng sử dụng React context cho dự án của bạn, và gặp phải tình trạng các component con - Consumer re-render rất nhiều lần, thậm chí bị sai logi

0 0 40

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

Tìm hiểu về React Hook: Sử dụng useDebugValue

Trong bài viết hôm này, tôi sẽ giới thiệu các bạn một React Hook tiếp theo, đó là useDebugValue. useDebugValue là gì .

0 0 60