0

Chúc mừng sinh nhật 20 tuổi jQuery! Có gì mới ở phiên bản 4.0.0?

Chúc mừng sinh nhật lần thứ 20 của jQuery.

Kể từ khi John Resig phát hành jQuery vào năm 2006, thư viện này đã đồng hành cùng sự phát triển của Web suốt hai thập kỷ. Và giờ đây, sau gần mười năm kể từ phiên bản chính (major version) cuối cùng, đội ngũ jQuery đã chính thức ra mắt jQuery 4.0.0.

Nhiều người có thể nghĩ rằng jQuery đã đến lúc lùi vào dĩ vãng. Tuy nhiên, nhìn thấy tin tức jQuery 4.0.0 chính thức phát hành, chúng ta vẫn phải thốt lên: Ferrari dù có già thì vẫn là Ferrari.

Bản cập nhật lần này không chỉ là những bản vá lỗi đơn giản. Đội ngũ phát triển đã dọn dẹp những món nợ kỹ thuật tồn đọng trong nhiều năm, loại bỏ các API lỗi thời, giúp thư viện kinh điển này cuối cùng cũng bắt kịp nhịp độ của Web hiện đại.

Dưới đây là những thay đổi đáng chú ý nhất trong bản cập nhật này:

Tạm biệt các trình duyệt "cổ lỗ sĩ"

Đây có lẽ là thay đổi được mong đợi nhất. jQuery 4.0.0 chính thức ngừng hỗ trợ IE 10 trở xuống.

Hiện tại, hỗ trợ cho IE 11 vẫn được giữ lại, nhưng đây chỉ là tạm thời; đội ngũ có kế hoạch loại bỏ hoàn toàn hỗ trợ IE trong phiên bản jQuery 5.0 tương lai. Ngoài ra, các trình duyệt cũ như Edge Legacy, iOS dưới 11, Firefox dưới 65 và các trình duyệt Android cũ cũng bị loại bỏ.

Trừ khi bạn đang làm các dự án "đồ cổ", còn không thì đây là tin vui: kích thước gói sẽ nhỏ hơn và tốc độ chạy sẽ nhanh hơn.

Loại bỏ các API lỗi thời

Khi các tính năng của JavaScript thuần (ES6+) ngày càng hoàn thiện, nhiều hàm hỗ trợ đời đầu của jQuery đã mất đi ý nghĩa tồn tại. Phiên bản 4.0 đã loại bỏ một lượng lớn các API như vậy.

Bây giờ bạn nên sử dụng các phương thức native tương đương:

  • jQuery.trim đã bay màu ➡️ Dùng String.prototype.trim()
  • jQuery.isArray đã bay màu ➡️ Dùng Array.isArray()
  • jQuery.parseJSON đã bay màu ➡️ Dùng JSON.parse()

Ngoài ra, một số phương thức mảng vốn chỉ dùng cho nội bộ (như push, sort, và splice) cũng đã bị xóa khỏi jQuery prototype. Giờ đây, các developer nên sử dụng trực tiếp các phương thức JavaScript thuần để thay thế.

Mã nguồn chuyển sang ES Modules

Mã nguồn của jQuery cuối cùng cũng đã chuyển từ hệ thống module AMD cũ kỹ sang ES Modules.

Điều này giúp jQuery hòa nhập mượt mà hơn nhiều vào các chuỗi công cụ build hiện đại như Vite, Rollup hoặc Webpack. Hơn nữa, bạn có thể load và chạy jQuery trực tiếp trong trình duyệt thông qua module hóa, phù hợp với quy trình phát triển hiện đại.

Thứ tự sự kiện Focus quay về chuẩn W3C

Trong một thời gian dài, các trình duyệt khác nhau đã không thống nhất về thứ tự kích hoạt các sự kiện focus (focus, blur, focusin, focusout). jQuery từng phải can thiệp để ép buộc một thứ tự riêng nhằm thống nhất hành vi.

Hiện tại, khi tất cả các trình duyệt lớn đã đạt được sự đồng thuận, jQuery 4.0.0 quyết định không can thiệp thủ công nữa. Nó sẽ tuân theo trực tiếp thứ tự chuẩn W3C:

blur -> focusout -> focus -> focusin

Lưu ý: Đây là một thay đổi phá vỡ tương thích (breaking change)! Nếu dự án hiện tại của bạn phụ thuộc chặt chẽ vào thứ tự kích hoạt sự kiện cụ thể, hãy đặc biệt chú ý khi nâng cấp.

Phiên bản "Slim" nhẹ hơn

Phiên bản Slim mới đã loại bỏ các module DeferredsCallbacks, giúp kích thước nhỏ hơn nữa (giảm khoảng 8KB sau khi gzip).

Do các trình duyệt hiện đại (trừ IE11) đều đã hỗ trợ Promise native, hầu hết các thao tác bất đồng bộ không còn cần đến Deferreds của jQuery nữa. Nếu dự án của bạn hướng tới các trình duyệt hiện đại, phiên bản Slim sẽ là lựa chọn tối ưu hơn.

Trải nghiệm nhanh (Quick Start)

Dù không phải để làm dự án mới, nhưng chỉ vì hoài niệm, nhiều người vẫn muốn thử phiên bản 4.0 này xem sao. Cách nhanh nhất là cài jquery@4.0.0 qua npm để chạy demo, và điều đó đòi hỏi một môi trường Node.js ổn định.

Nếu bạn không muốn làm rối tung máy local với hàng đống cấu hình chỉ để test thử, hoặc đơn giản là thấy việc setup môi trường quá phiền phức, hãy thử ServBay. Nó giúp bạn triển khai môi trường Node.js chỉ với một cú click, tự động xử lý cấu hình đường dẫn và quản lý phiên bản.

Sau khi môi trường đã sẵn sàng, bạn chỉ cần chạy lệnh npm trong thư mục để kéo jQuery mới nhất về và bắt đầu vọc vạch — vừa tiết kiệm thời gian vừa đỡ tốn công sức.

Lời kết

Việc phát hành jQuery 4.0.0 chứng minh rằng nó không hề "nằm thẳng" (buông xuôi). Thay vào đó, nó đang nỗ lực thích nghi với các tiêu chuẩn Web hiện đại. Giống như một cao thủ võ lâm bế quan luyện công 10 năm, khi xuất quan lại càng lợi hại hơn xưa.

Dù là để bảo trì các tài sản hiện có hay để phát triển nhanh trong các kịch bản cụ thể, phiên bản mới này đều là một câu trả lời thuyết phục.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí