Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Làm cách nào để giảm kích thước bó của ứng dụng Vue.js của tôi


Làm cách nào để giảm kích thước bó của ứng dụng Vue.js của tôi


Việc giảm kích thước bó của ứng dụng Vue.js là rất quan trọng để cải thiện hiệu suất tải trang và trải nghiệm người dùng. Một kích thước bó nhỏ hơn dẫn đến tải xuống nhanh hơn, ít phân tích cú pháp và thời gian khởi động ứng dụng nhanh hơn. Có nhiều chiến lược và thực tiễn tốt nhất để đạt được điều này, từ tối ưu hóa các phụ thuộc đến sử dụng các công cụ và kỹ thuật xây dựng nâng cao.

Sử dụng bước xây dựng với độ rung của cây

Một trong những cách hiệu quả nhất để giảm kích thước bó là sử dụng các công cụ xây dựng hiện đại hỗ trợ rung chuyển cây. Cây rung chuyển là một quá trình loại bỏ mã không sử dụng khỏi gói cuối cùng. API của VUE và nhiều thư viện JavaScript hiện đại được thiết kế để có thể xử lý bằng cây khi đi kèm chính xác. Ví dụ, các thành phần Vue không sử dụng như `` tích hợp sẽ không được đưa vào các bản dựng sản xuất nếu không được sử dụng. Các mẫu trước trong thời gian xây dựng cũng tránh vận chuyển trình biên dịch VUE vào trình duyệt, có thể tiết kiệm khoảng 14 kb JavaScript được thu nhỏ và Gzipped, giảm chi phí thời gian chạy.

Quản lý và phân tích các phụ thuộc

Sự phụ thuộc thường đóng góp đáng kể vào kích thước bó. Điều quan trọng là:

-Chọn các phụ thuộc cung cấp các định dạng mô-đun ES và thân thiện với cây (ví dụ: `lodash-es` thay vì` lodash`).
-Thường xuyên kiểm toán các phụ thuộc của bạn bằng các công cụ như `Webpack-bundle-analyzer` để xác định các gói lớn hoặc không cần thiết.
- Xóa các phụ thuộc không sử dụng bằng các công cụ như `depcheck` hoặc` npm prune`.
- Thay thế các phụ thuộc lớn bằng các lựa chọn thay thế nhỏ hơn, tập trung hơn. Ví dụ, thay thế một thư viện biểu đồ nặng như `echarts` bằng một thư viện nhỏ hơn như biểu đồ.js có thể giảm đáng kể kích thước bó.

Các tuyến và thành phần tải lười biếng

Tải lười biếng là một chiến lược trong đó mã cho các tuyến đường hoặc thành phần chỉ được tải khi cần, thay vì kết hợp mọi thứ trả trước. Bộ định tuyến Vue hỗ trợ các tuyến tải lười biếng bằng cách nhập động các thành phần, chia gói thành các khối nhỏ hơn để cải thiện hiệu suất tải ban đầu. Phương pháp này làm giảm đáng kể kích thước của gói chính và lan truyền tải mã theo thời gian khi người dùng điều hướng qua ứng dụng.

Sử dụng phân tách mã và nhập khẩu động

Webpack, thường được sử dụng trong các dự án VUE, hỗ trợ phân tách mã thông qua các câu lệnh `interpry ()` động. Điều này có nghĩa là các phần của ứng dụng của bạn có thể được chia thành các gói riêng biệt được tải không đồng bộ. Sử dụng phân tách mã giúp quản lý kích thước gói bằng cách chỉ tải mã theo yêu cầu theo yêu cầu.

Minification và nén

Minification làm giảm kích thước của các tệp JavaScript bằng cách xóa khoảng trắng, nhận xét và rút ngắn tên biến. Các công cụ như Uglifyjs hoặc Terser (thường được tích hợp trong các quy trình xây dựng hiện đại) tự động thu nhỏ mã trong bước xây dựng sản xuất. Ngoài ra, nén Gzipping hoặc Brotli làm giảm thêm quy mô của tài sản được phục vụ cho người dùng.

Sử dụng các lựa chọn thay thế Vue nhỏ hơn cho các trường hợp sử dụng cụ thể

Đối với các dự án trong đó khung Vue.js đầy đủ có thể quá nặng, đặc biệt là đối với các trường hợp tăng cường tiến bộ, hãy xem xét sử dụng các lựa chọn thay thế nhẹ hơn như Petite Vue, chỉ có kích thước khoảng 6 kb. Điều này rất hữu ích nếu dự án không yêu cầu hệ sinh thái Vue đầy đủ.

Phạm vi và nhập chỉ các phần cần thiết của thư viện

Nhiều thư viện lớn như Bootstrap Vue hoặc Lodash chỉ cho phép nhập các thành phần hoặc chức năng cụ thể thay vì toàn bộ thư viện. Ví dụ: thay vì nhập toàn bộ thư viện bootstrap Vue, chỉ nhập các thành phần bạn cần, giúp giảm kích thước bó bằng cách loại trừ các phần không sử dụng. Tương tự, nhập các hàm lodash một cách mô -đun (`Nhập bản đồ từ 'lodash/map'` thay vì toàn bộ lodash).

Tránh các kiểu nội tuyến và khung CSS lớn nếu không cần thiết

Các khung CSS như bootstrap thêm vào kích thước bó. Đánh giá nếu bạn thực sự cần toàn bộ khung và xem xét các lựa chọn thay thế như CSS đuôi cho các gói CSS linh hoạt và nhỏ hơn. Ngoài ra, hãy xem xét loại bỏ nhập khẩu kiểu không sử dụng hoặc lưu trữ CSS bên ngoài nếu có thể.

Kết xuất phía máy chủ và tạo trang web tĩnh

Di chuyển một số kết xuất đến máy chủ thông qua SSR (kết xuất phía máy chủ) hoặc SSG (tạo trang web tĩnh) giúp giảm lượng JavaScript cần thiết ở phía máy khách, giảm hiệu quả kích thước bó. Điều này chuyển các trách nhiệm kết xuất sang máy chủ, gửi HTML được xây dựng trước cho máy khách với JS tối thiểu để tương tác.

Tối ưu hóa hình ảnh và các tài sản khác

Mặc dù điều này không ảnh hưởng trực tiếp đến kích thước gói JavaScript, nhưng tối ưu hóa hình ảnh, phông chữ và tài sản góp phần vào hiệu suất tải trang tổng thể, bổ sung cho các cải tiến JavaScript.

Sử dụng các tính năng và polyfills hiện đại một cách khôn ngoan

Sử dụng cú pháp JavaScript hiện đại có thể dẫn đến các bó nhỏ hơn khi kết hợp với các công cụ xây dựng hiện đại. Tránh các polyfills không cần thiết trừ khi nhắm mục tiêu các trình duyệt cũ hơn và xem xét các polyfills có điều kiện dựa trên khả năng trình duyệt của người dùng.

Tóm tắt các thực hành để giảm kích thước gói Vue.js

- Sử dụng các công cụ xây dựng với sự rung chuyển của cây (ví dụ: Webpack, Vite).
- Mẫu Vue Pre-Compile.
-Phân tích nội dung gói với các công cụ như `Webpack-bundle-analyzer`.
- Hủy bỏ hoặc thay thế các phụ thuộc nặng.
- Nhập chỉ các thành phần hoặc chức năng cần thiết từ các thư viện.
- Thực hiện tải lười cho các tuyến đường và thành phần.
- Sử dụng phân tách mã và nhập khẩu động.
- Áp dụng thu nhỏ và nén.
- Xem xét các lựa chọn thay thế nhỏ hơn như Petite Vue cho các ứng dụng cụ thể.
- Tối ưu hóa việc sử dụng CSS và tránh nhập toàn bộ các khung không cần thiết.
- Sử dụng SSR hoặc SSG để giảm kích thước bó phía máy khách.
- Tối ưu hóa tài sản và sử dụng các tính năng JavaScript hiện đại một cách cẩn thận.

Các chiến lược kết hợp này đóng góp đáng kể vào việc giảm kích thước gói ứng dụng Vue.js, dẫn đến thời gian tải được cải thiện và trải nghiệm người dùng tốt hơn.