Bắt đầu bằng route-level lazy loading, kiểm tra bundle analyzer/source-map-explorer, loại bỏ dependency nặng không cần thiết và dùng @defer cho UI chưa cần ngay.
Tiếp theo tối ưu shared module/imports để tránh kéo cả thư viện vào initial chunk. Đừng micro-optimize trước khi đo; mục tiêu là giảm JavaScript critical path của màn hình đầu tiên.
Start with route-level lazy loading, inspect bundles with an analyzer/source-map-explorer, remove unnecessary heavy dependencies and use @defer for UI that is not immediately needed.
Then optimize shared modules/imports so entire libraries are not pulled into the initial chunk. Do not micro-optimize before measuring; the goal is to reduce the JavaScript critical path of the first screen.