Эта статья составлена из официального английского анонса Monent.js.момент JS.com/docs/#/-pro…
Moment.js объявил о прекращении разработки и переходе в состояние обслуживания.
Это большая и всеобъемлющая библиотека времени и даты, которая значительно облегчает нам вычисление времени и даты в JavaScript, с более чем 12 миллионами загрузок в неделю и успешно используемая в миллионах проектов.
Однако, как ветеран-звездный проект, родившийся в 2011 году, Moment.js не идеален с текущей точки зрения.Официальный резюмирует две основные проблемы:
1. Изменяемые объекты
Объект Moment — это изменяемый объект (mutable), проще говоря, такое вычисление, как сложение или вычитание, в любой момент изменяет себя. Такой дизайн делает код очень неуправляемым, и в него легко внести всевозможные скрытые и трудно отлаживаемые ошибки. Так что мы должны вызывать перед каждым шагом модификации.clone
Клонируйте один раз, чтобы работать с уверенностью.
2. Объем упаковки слишком велик
Поскольку Momnet.js упаковывает все функции и все поддерживаемые языки в один пакет, размер пакета также увеличивается.280.9 kBТакое преувеличенное число, и оно недействительно для встряски деревьев. Если вы хотите использовать функции, связанные с часовым поясом, размер пакета еще больше.467.6 kBразмер. Проще говоря, нам может понадобиться только один.format
Метод форматирования времени, пользователям необходимо загрузить сотни килобайт библиотек, что очень неэкономично.
Последняя версия инструментов разработчика Chrome также начала рекомендовать пользователям заменить Moment.js на меньшую библиотеку такого рода.
Теперь, когда Moment.js больше не разрабатывается, что мы будем делать дальше?
Чиновник предложил 3 варианта:
1. Не использовать библиотеки
Фактически, для некоторых простых требований к обработке времени JavaScript поставляется сDate
а такжеIntl
Объект полностью устраивает. мощныйIntl
Объекты могут отображать форматы времени и даты в разных часовых поясах и на разных языках и хорошо поддерживаются в большинстве современных браузеров.
2. Temporal
Возможно, однажды в будущем нам больше не понадобится использовать какую-либо библиотеку, и стоит с нетерпением ждать новой встроенной схемы времени и даты Temporal в будущем. Это переработанный API времени и даты, встроенный в язык JS, и теперь можно попробовать Temporal с экспериментальным полифиллом, но до того, как он будет доступен в масштабе производства, еще далеко.
3. Другие альтернативные библиотеки
Официальная рекомендация — Luxon, Day.js, date-fns и другие библиотеки с более продвинутым дизайном и лучшими библиотеками времени и даты. Напротив, Day.js, вероятно, стоит попробовать.
Day.js
Официальная рекомендация: Day.js разработан как минималистичная замена Moment.js с почти таким же API. Если вы знакомы с API Moment и хотите быстро приступить к работе, обратите внимание на Day.js.
Вышеупомянутые два конструктивных дефекта Moment.js официально суммированы: переменные объекты снижают ремонтопригодность кода, а чрезмерный размер пакета влияет на скорость загрузки всего проекта.
и почти30 000 звезд GithubизDay.jsКонцепция дизайна совпадает с этим резюме. Сохраняя неизменным превосходный дизайн API, введение неизменяемых объектов (immutable) снижает умственные затраты, необходимые для разработки, и в то же время упрощает логику, так что весь объем пакета составляет всего лишь2 kBразмер.
Day.js — это облегченная библиотека обработки времени и даты JavaScript с точно таким же дизайном API, что и Moment.js.Если вы использовали Moment.js, значит, вы уже знаете, как использовать Day.js.
Основное использование Day.js заключается в следующем: тот же API, та же цепная операция и знакомый вариант.
dayjs()
.startOf('month')
.add(1, 'day')
.set('year', 2018)
.format('YYYY-MM-DD HH:mm:ss');
- 🕒 Тот же API и способ использования, что и у Moment.js.
- 📦 Крошечная библиотека размером всего 2 КБ
- 💪 Неизменяемые данные (Неизменяемые)
- 🔥 Поддержка цепочек (Chainable)
- 🌐 I18n Интернационализация
- 👫 Поддержка преобразования глобального часового пояса
Спасибо пожилым людям Moment.js за их усилия по улучшению нашего опыта разработки, с нетерпением жду возможности принять эстафетуDay.jsСделайте обработку времени и даты больше не проблемой 💖 и с нетерпением ждите новых решений для времени и даты, встроенных в JavaScript в будущем, которые позволят нам использовать Vanilla js для решения всех проблем.