0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Tối ưu hóa hiệu suất trong React với useMemo và useCallback

Đăng vào 3 tuần trước

• 2 phút đọc

1. Tối ưu hóa hiệu suất trong React với useMemo và useCallback

Khi phát triển ứng dụng web với React, việc tối ưu hóa hiệu suất là điều cần thiết để đảm bảo người dùng có trải nghiệm tốt nhất. Hai hooks (hʊks) quan trọng trong React giúp tối ưu hóa hiệu suất là useMemouseCallback.

1.1. Hiểu về useMemo

UseMemo là một hook cho phép bạn memoize kết quả của một hàm tính toán có chi phí cao. Điều này có nghĩa là React sẽ chỉ tính toán lại giá trị của hàm khi một trong các dependencies (dɪˈpɛndənsiz) thay đổi. Nhờ vậy, nó giúp giảm thiểu các phép toán không cần thiết, từ đó cải thiện hiệu suất cho ứng dụng của bạn.

Ví dụ: Giả sử bạn có một component hiển thị danh sách sản phẩm cùng với hàm tính tổng giá trị của các sản phẩm đã chọn. Bằng cách sử dụng useMemo, bạn có thể lưu trữ kết quả của hàm này và chỉ tính toán lại khi danh sách sản phẩm được chọn thay đổi:

javascript Copy
const selectedProducts = ['Product A', 'Product B', 'Product C'];

const totalValue = useMemo(() => {
  return selectedProducts.reduce((total, product) => {
    return total + getProductPrice(product);
  }, 0);
}, [selectedProducts]);

1.2. Giới thiệu useCallback

UseCallback là một hook khác giúp tối ưu hóa hiệu suất bằng cách memoize các hàm callback. Khi bạn truyền một hàm callback cho một component con dưới dạng prop, việc sử dụng useCallback đảm bảo rằng hàm callback chỉ được tạo lại khi cần thiết, tránh việc tạo ra các hàm mới không cần thiết mỗi khi component cha được render lại.

Ví dụ: Bạn có thể sử dụng useCallback để truyền một hàm xử lý sự kiện click vào một component con:

javascript Copy
const handleClick = useCallback(() => {
  console.log('Button clicked!');
}, []);

return <ChildComponent onClick={handleClick} />;

1.3. Lợi ích của việc sử dụng useMemo và useCallback

Sử dụng useMemouseCallback không chỉ giúp cải thiện hiệu suất mà còn nâng cao khả năng đọc và bảo trì mã nguồn. Các phép toán phức tạp được tách ra khỏi logic render chính, tạo nên mã nguồn sạch sẽ và dễ hiểu hơn.

Tuy nhiên, việc sử dụng hai hooks này cần phải hợp lý. Chỉ nên áp dụng cho những trường hợp tính toán tốn kém hoặc các hàm callback thường xuyên được sử dụng. Việc lạm dụng useMemo và useCallback có thể tạo ra nhiều closures không cần thiết và thậm chí làm giảm hiệu suất của ứng dụng.

Kết luận

Tóm lại, useMemouseCallback là hai công cụ mạnh mẽ trong React giúp tối ưu hóa hiệu suất ứng dụng của bạn. Sử dụng chúng một cách cẩn thận, bạn có thể đảm bảo trải nghiệm tốt hơn cho người dùng và nâng cao sự hài lòng của họ với ứng dụng. Hiệu suất chính là chìa khóa để phát triển các ứng dụng web thành công và thu hút người dùng.

Danh sách từ khóa:

  1. hooks (hʊks) - (n) các hook trong React
  2. memoize (ˈmɛməˌwaɪz) - (v) ghi nhớ, lưu trữ kết quả tính toán
  3. dependencies (dɪˈpɛndənsiz) - (n) các phụ thuộc
  4. component (kəmˈpoʊnənt) - (n) thành phần
  5. prop (prɑp) - (n) thuộc tính
  6. closures (ˈkloʊʒərz) - (n) các closure
    source: viblo
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào