Hiệu năng
Hiệu năng web từ gốc
Đo trước bằng Core Web Vitals, rồi đi lần lượt qua ảnh, font, cache, bundle, render React và event loop — mỗi chặng gỡ một nguyên nhân khiến trang chậm.
8 phần85 phút đọcCập nhật 26 thg 4, 2026
Các phần
Phần 1
Core Web Vitals: hiểu đúng LCP, INP, CLS và cách tối ưuBa chỉ số Google dùng để đo trải nghiệm thật của người dùng — đo thế nào, được tính ra sao, vì sao ảnh hưởng SEO, và quy trình cụ thể để tìm đúng nguyên nhân rồi sửa.
14 phút
Phần 2
Tối ưu ảnh từ đầu đến cuối: định dạng, srcset, lazy loading và next/imageChọn định dạng nào, srcset và sizes giúp trình duyệt chọn ảnh ra sao, khi nào lazy và khi nào eager, giữ chỗ để tránh CLS, CDN ảnh, art direction với picture và cách dùng next/image trong Next.js 16.
9 phút
Phần 3
Web font đúng cách: nhanh, không nhảy layout và hiển thị tiếng Việt chuẩnFont ảnh hưởng LCP và CLS ra sao, chọn font-display thế nào, preload font quan trọng, subset với unicode-range cho tiếng Việt, variable font, tự host hay dùng CDN, chỉnh metric font fallback và next/font trong Next.js.
9 phút
Phần 4
Caching cho frontend developer: từ HTTP cache đến CDN và data cacheCache-Control, ETag, tên file có hash, s-maxage và stale-while-revalidate ở CDN, service worker, staleTime trong TanStack Query — mỗi lớp cache làm gì, nên đặt header thế nào cho từng loại tài nguyên, và những lỗi khiến người dùng thấy dữ liệu cũ.
9 phút
Phần 5
Code Splitting và Lazy Loading trong ReactHướng dẫn thực tế giúp giảm lượng JavaScript tải ban đầu bằng cách kết hợp lazy loading theo route và theo component.
1 phút
Phần 6
Hiệu năng render trong React: đo trước, tối ưu sau, và biết khi nào nên dừngĐiều gì khiến component render lại, vì sao re-render không đồng nghĩa với cập nhật DOM, cách đo bằng React DevTools Profiler, chi phí thật của memo/useMemo/useCallback, tách context, đặt state đúng chỗ, key trong danh sách, và React Compiler thay đổi bức tranh thế nào.
9 phút
Phần 7
List virtualization từ con số 0: render 100.000 dòng mà vẫn mượtTự tay viết một virtual list bằng React + TypeScript: toán windowing với số liệu cụ thể, overscan, chiều cao thay đổi với prefix sum và binary search, đo bằng ResizeObserver, chống giật khi scroll, accessibility — và khi nào không nên virtualize.
18 phút
Phần 8
Event loop, microtask và rendering: vì sao giao diện của bạn bị đơHiểu đúng mô hình event loop của trình duyệt — task, microtask, khung hình — qua các bài đoán thứ tự output, rồi dùng nó để giải thích vì sao UI bị đơ và cách chia nhỏ, nhường main thread, đẩy việc sang Web Worker.
16 phút