Moment.js thông báo rằng nó đã ngừng phát triển, chúng ta nên sử dụng gì bây giờ?

Nội dung bài viết

Video học lập trình mỗi ngày

Moment.js thông báo rằng nó đã ngừng phát triển, chúng ta nên sử dụng gì bây giờ? Moment.js đã chính thức đưa ra thông báo ngừng phát triển và đi vào trạng thái bảo trì. Moment.js là một thư viên ngày và giờ lớn và đầy đủ tính năng nhất, tạo điều kiện rất nhiều cho nhiều dự án tính toán ngày và giờ trong JavaScript. Nó có hơn 12 triệu lượt tải xuống mỗi tuần và đã được sử dụng thành công trong hàng triệu dự án.

Nó giống như trường hợp mà chúng tôi đẫ thông báo cho các bạn về  "Kết thúc cuộc phiêu lưu của Redis Salvatore Sanfilippo - Bài học rút ra cũng giống như flappy bird Nguyễn Hà Đông"

day js la gi


Moment.js nhược điểm

Trước hết chúng ta hãy nói lời cảm ơn đến đội ngũ xây dựng thư viện Moment.js. Một trong những thư viện mà từ khi tôi biết đến và đã sử dụng rất nhiều trong mỗi dự án đều dính tới. Thế nhưng cũng như các thư viện khác Moment.js cũng không tránh khỏi những nhược điểm. 

Kích thước file Moment.js qúa lớn: Bởi vì Momnet.js gói tất cả các chức năng vào một package cho nên nó lên tới 280,9 kB. Không thích hợp cho chế độ load JavaScript. Và nếu như chúng ta muốn sử dụng chức năng ngày giờ thì chúng ta có thể tải về lớn hơn nữa đó là khoảng 467,6 kB. Nói đơn giản hơn thì khi chúng ta sử dụng .format()  thì chúng ta phải load một file đến như vậy. 

Thật sự không cần thiết, và đó là nhược điểm lớn nhất thôi. Nhưng có cũng hơn không, và phải ghi nhận Moment.js đã đóng góp nhiều cho chúng ta.

Tips: Hướng dẫn từ A tới Z về Moment.js

Moment.js đã ngừng phát triển, chúng ta nên sử dụng gì tiếp theo?

Thực tế những ai đã dùng thì cũng không cần phải lo lắng vì nó vẫn chạy bình thường nhưng sẽ không có những tính năng mới được update. Vì vậy câu hỏi hiện tại mà mọi lập trình viên đang đặt ra đó là phải làm gì khi moment.js bị ngừng phát triển. 

Và ở đây có 3 hướng theo tìm hiểu trên các diễn đàn quốc tế.


Không dùng thư viện

Trên thực tế, đối với một số yêu cầu xử lý thời gian đơn giản, JavaScript được hỗ trợ cho chúng ta nhiều đối tượng như Date và Intl. Các đối tượng này tương đối phù hợp với việc tính toán thời gian đơn giản. 

Đặc biệt Intl JavaScript là một object mạnh mẽ có thể hiển thị các định dạng thời gian và ngày tháng ở các múi giờ khác nhau bằng các ngôn ngữ khác nhau, trên hầu hết các trình duyệt hiện đại đều hỗ trợ rất tốt. Lời khuyên: Nếu như bạn có thể kiểm soát tốt code của mình thì hãy nói không với các API.


Sử dụng thư viện khác thay thế Moment.js

Câu hỏi ở đây là nếu như chúng ta không sử dụng Moment.js nữa thì có thư viện nào có thể đủ bản lĩnh mà thay thế. Câu trả lời là có, và có thể ngon hơn nữa. Đó chính là những thư viện sau date-fns, day.js, Luxon. Nhưng theo như các diễn đàn thì day.js là ngon hơn cả.


Day.js là gì?

Moment js la gi

Day.js là một thư viện được thiết kế như một giải pháp thay thế tối giản cho Moment.js, với API gần như giống nhau. Nếu bạn đã quen với việc sử dụng API của Moment thì bạn cũng có thể nhanh chóng hoà nhập với các tính năng trong day.js, bạn có thể tham khảo tại trang chủ Day.js. Với nhược điểm của Moment như đã nói ở trên thì việc sử dụng day.js này trong khi giữ nguyên thiết kế API tuyệt vời, việc giới thiệu các đối tượng không thay đổi làm giảm chi phí tinh thần cần thiết trong quá trình phát triển, đồng thời đơn giản hóa logic để kích thước toàn bộ gói chỉ là 2 kB. 


Day.js là một thư viện xử lý ngày và giờ JavaScript nhẹ, hoàn toàn giống với thiết kế API của Moment.js. Nếu bạn đã sử dụng Moment.js thì bạn đã biết cách sử dụng Day.js Ví dụ: Cách sử dụng cơ bản của Day.js như sau, cùng một API, cùng một chuỗi hoạt động và một hương vị quen thuộc.

dayjs()
    .startOf('month')
    .add(1, 'day')
    .set('year', 2020)
    .format('YYYY-MM-DD HH:mm:ss');

Day.js ưu điểm


  • 🕒 API và cách sử dụng tương tự như Moment.js 
  • 📦 Thư viện vi mô chỉ có kích thước 2kB 
  • 💪 Dữ liệu bất biến (Immutable) 
  • 🔥 Hoạt động chuỗi hỗ trợ (Có thể) 
  • 🌐 Quốc tế hóa I18n 
  • 👫 Hỗ trợ chuyển đổi múi giờ toàn cầu


Cảm ơn độ ngũ của Moment.js đã phát triển cho chúng ta một thư việ tuyệt vời. Để chúng ta có những thư viện tốt hơn trong những ngày kế tiếp... Thanks for reading!

Có thể bạn đã bị missing