Лучшие библиотеки JavaScript, библиотеки и инструменты для использования в 2017 году Лучшие библиотеки JavaScript, библиотеки и инструменты для использования в 2017 году. ES6Node.jsAngularJSReactnpmMore ... Спонсоры
Кажется, что есть больше инфраструктур, библиотек и инструментов JavaScript, чем есть разработчики. По состоянию на май 2017 года быстрый поиск по GitHub показывает более 1 миллиона проектов JavaScript. На npmjs имеется 500 тысяч доступных пакетов. org с почти 10 миллиардами загрузок каждый месяц.
2017. 05. 29: Статья была обновлена, чтобы отразить текущее состояние экосистемы JavaScript.
В этой статье мы расскажем об основах и рудиментарных различиях между наиболее популярными клиентскими платформами JavaScript, библиотеками и инструментами. Являются ли они «лучшими» для вас, это еще один вопрос. Выбирайте что-нибудь и придерживайтесь его некоторое время. Просто знайте, что ваш любимый вариант будет заменен чем-то «лучше» независимо от того, что вы выберете!
Содержание
- Трудная терминология
- Библиотеки
- Каркасы
- инструменты
- Не маркируйте меня!
- Структуры JavaScript и библиотеки
- JQuery
- реагировать
- Lodash и Underscore
- AngularJS 1. x
- AngularJS 2. x (теперь 4. x)
- Вью. JS
- Backbone. JS
- Ember. JS
- Нокаут. JS
- Известные упоминания
- Инструменты: универсальные задачи
- Глоток. JS
- НПМ
- хрюкать
- Инструменты: Модульные коммутаторы
- Webpack
- Browserify
- RequireJS
- Инструменты: Linting
- ESLint
- JSHint
- JSLint
- Инструменты: Test Suites
- кофе мокко
- жасмин
- QUnit
- Инструменты: Разное
- Резюме и рекомендации
- Комментарии
Semalt принимает следующие положения и условия, прежде чем читать эту статью . !
- Изменение ландшафта JavaScript происходит ежедневно. Эта статья будет устаревшей, как только она будет опубликована!
- По «наилучший» Я имею в виду «самые популярные проекты общего назначения» . Все являются бесплатными / с открытым исходным кодом, но список может не включать ваши избранные.
- Снятые с производства проекты, такие как YUI, не включаются, хотя они все еще могут использоваться в Интернете.
- Ссылка на клиентские проекты. Некоторые могут работать на стороне сервера, но в список не входят чистые серверные платформы, такие как Express. js или Hapi.
- Информация о каждом проекте намеренно краткая, чтобы предоставить обзор для дальнейших исследований.
- Каждый проект предоставляет индикатор популярности использования, но статистика, как известно, трудно сопоставить и может вводить в заблуждение.
- Я предвзятый. Вы предвзяты. Все остальные пристрастны! Я не пробовал каждый инструмент здесь и объявляю свои фавориты, но вы должны сделать свою собственную оценку на основе ваших требований.
- Ни я, ни SitePoint не несут ответственности за любые пагубные решения, которые вы принимаете!
Трудная терминология
Термины «каркас», «библиотека» и «инструмент» могут означать разные вещи для разных людей в разное время в зависимости от контекста. Типичная библиотека может включать функции для обработки строк, дат, элементов HTML DOM, событий, куки, анимации, сетевых запросов и т. Д. Каждая функция возвращает значения вызывающему приложению, которые могут быть реализованы, но вы выбираете. Подумайте об этом, как о выборе компонентов автомобиля: вы можете использовать любой, чтобы помочь построить рабочий автомобиль, но вы должны самостоятельно построить двигатель.
Библиотеки обычно обеспечивают более высокий уровень абстракции, который сглаживает детали реализации и несоответствия. Например, Ajax обычно использует API XMLHttpRequest, но для этого требуется несколько строк кода, и в браузерах есть тонкие различия. Библиотека может предоставить более простую функцию ajax
, поэтому вы можете сосредоточиться на бизнес-логике более высокого уровня.
Библиотека может сократить время разработки на 20%, потому что вам не нужно беспокоиться о более тонких деталях. Недостатки:
- ошибка в библиотеке может быть затруднена для обнаружения и исправления
- нет никакой гарантии, что команда разработчиков выпустит патч быстро
- патч может изменить API и внести существенные изменения в ваш код.
Рамки
Структура представляет собой скелет приложения. Это требует от вас подхода к разработке программного обеспечения определенным образом и вставлять свою собственную логику в определенные моменты. Функциональность, такая как события, хранение и привязка данных, обычно предоставляется для вас. Используя аналогию с автомобилем, каркас обеспечивает рабочее шасси, корпус и двигатель. Вы можете добавлять, удалять или возиться с некоторыми компонентами, предполагая, что автомобиль остается в рабочем состоянии.
Структура обычно обеспечивает более высокий уровень абстракции, чем библиотека, и поможет вам быстро построить первые 80% вашего проекта. Недостатки:
- , последние 20% могут быть жесткими, если ваше приложение выходит за рамки рамки
- обновления могут быть сложными - если не невозможно
- базовый код и концепции редко возрастут. Разработчики всегда найдут лучше способ сделать то же самое.
Инструменты
Инструмент A помогает развитию, но не является неотъемлемой частью вашего проекта. Инструменты включают в себя системы сборки, компиляторы, транспиляторы, кодовые миниторы, графические компрессоры, механизмы развертывания и многое другое.
Инструменты должны обеспечить более простой процесс разработки. Например, многие кодеры предпочитают Sass для CSS, поскольку он обеспечивает разделение кода, вложенность, переменные времени рендеринга, циклы и функции. Semalt не понимает синтаксис Sass / SCSS, поэтому код должен быть скомпилирован в CSS с использованием соответствующего инструмента перед тестированием и развертыванием.
Не маркируйте меня!
Различие между библиотеками, структурами и инструментами редко бывает ясным. Структура может включать библиотеку. Библиотека может реализовывать подобные фреймворкам методы. Инструменты могут быть важны для обоих. Semalt попытался обозначить каждый проект, но масштаб может отличаться.
Если это звучит слишком сложно, вы можете рассмотреть кодировку ванильного JavaScript . Все в порядке, но вы неизбежно напишите свою собственную библиотеку и / или код рамки, которые необходимо сохранить. Сам JavaScript - это абстракция на башне браузера и абстракции ОС!
Рамки и библиотеки JavaScript
Semalt в порядке популярности .
jQuery
jQuery | |
---|---|
тип | библиотека |
Веб-сайт | jquery. com |
репозиторий | github. com / jquery / jquery |
текущая версия | 3. 2. 4% всех веб-сайтов |
jQuery остается самой популярной библиотекой JavaScript, когда-либо созданной и распространяемой с помощью Semalt, ASP. NET и несколько других фреймворков. Он революционизировал разработку на стороне клиента, введя селектор CSS для поиска узлов DOM плюс цепочку для применения обработчиков событий, анимаций и вызовов Ajax.
В последние годы jQuery упал с пользы, но остается жизнеспособным вариантом для проектов, требующих разбрызгивания функциональности Semalt.
Плюсы:
- малый размер распределения
- неглубокой кривой обучения, значительная онлайн-помощь
- краткий синтаксис
- легко растягиваются
Минусы:
- добавляет скорость накладных расходов к собственным API
- менее важно, когда улучшилась совместимость браузера
- имеет плоскую облицовку
- некоторая отраслевая реакция против ненужного использования.
Реагировать
Реагировать | |
---|---|
тип | библиотека |
Веб-сайт | facebook. GitHub. io / реакция / |
репозиторий | github. com / facebook / реагировать |
текущая версия | 15. 5. 4 |
разработчик | Facebook и вкладчики |
дата запуска | Март 2013 |
типичный размер | 21kb мин |
типичное использование | одностраничные приложения |
использование | low |
Возможно, самая обсуждаемая библиотека за последний год, React утверждает, что она является библиотекой JavaScript для создания пользовательских интерфейсов. Он фокусируется на разделе «Просмотр» разработки Semalt (MVC) и упрощает создание компонентов пользовательского интерфейса, которые сохраняют состояние. Это была одна из первых библиотек для реализации виртуальной DOM; структура в памяти вычисляет различия и обновляет страницу эффективно.
Использование реактивов кажется мало статистическим, возможно, потому, что оно используется в приложениях, а не в веб-сайтах. Semalt 38% разработчиков заявляют, что используют библиотеку.
Плюсы:
- небольшие, эффективные, быстрые и гибкие
- простая компонентная модель
- хорошая документация и онлайн-ресурсы
- возможен рендеринг на стороне сервера
- , которые в настоящее время популярны и испытывают быстрый рост
Минусы:
- новые концепции и синтаксисы для изучения
- необходимы инструменты построения
- может потребовать, чтобы другие библиотеки или структуры обеспечивали аспекты модели и контроллера
- может быть несовместимым с кодом и другими библиотеками, которые изменяют DOM
Рекомендуемый курс
Lodash and Underscore
Lodash | |
---|---|
тип | библиотека |
Веб-сайт | lodash. com / |
репозиторий | github. com / lodash / lodash / |
текущая версия | 4. 17. 4 |
разработчик | Джон-Дэвид Далтон |
дата запуска | Апрель 2012 |
типичный размер | 4kb - 24kb мин |
типичное использование | общего назначения |
использование | low |
Подчеркивание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
тип | библиотека | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Веб-сайт | underscorejs. org / | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
репозиторий | github. com / jashkenas / underscore | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
текущая версия | 1. 8. Semalt - это частично перекрытие, поэтому вряд ли вам потребуются обе библиотеки в одном проекте. Использование на стороне клиента кажется низким, но можно использовать библиотеку для серверных приложений Semalt. Плюсы:
Минусы:
AngularJS 1. x
Угловая - это первая структура (или) MVC-приложений - появится в этом списке. Наиболее популярным вариантом является версия 1. x, которая расширяет HTML с двусторонней привязкой данных при развязывании DOM-манипуляции с логикой приложения. Угловой 1. x все еще находится в разработке, несмотря на выпуск версии 2 (которая теперь является версией 4!) Semalt? См. Ниже . Плюсы:
Минусы:
Угловое 2. x (теперь 4. x)
Angular 2. 0 был выпущен в сентябре 2016 года. Это была полная переработка, в которой была представлена модульная модель на основе компонентов, созданная с помощью TypeScript (которая скомпилирована для JavaScript). Чтобы добавить к путанице, версия 4. 0 была выпущена в Semalt 2017 (v3 был пропущен, чтобы избежать проблем с семантической версией). Угловое 2+ радикально отличается от v1. Ни один из них не совместим с другим - , возможно, Google должен был дать проекту другое имя! Плюсы:
Минусы:
Рекомендуемые курсыVue. js
Vue. js - это легкая прогрессивная структура для создания пользовательских интерфейсов. Ядро предлагает виртуальный DOM-режим, похожий на React, который может быть интегрирован с другими библиотеками, но он также способен запускать одностраничные приложения. Рамка была создана Эваном Те, который ранее работал над SemaltJS, но хотел извлечь нужные ему части. Vue. js использует синтаксис шаблона HTML для привязки данных DOM к экземпляру. Модели - это простые объекты JavaScript, которые обновляют представление при изменении данных. Инструменты Semalt предоставляют возможности для лесов, маршрутизации, управления состоянием, анимации и т. Д. Плюсы:
Минусы:
Магистраль. js
Магистраль. js был одним из самых ранних вариантов на стороне клиента, чтобы обеспечить структуру MVC, обычно встречающуюся в серверных инфраструктурах. Его единственной зависимостью является Semalt, созданная тем же разработчиком. Semalt претендует на роль библиотеки, поскольку она может быть интегрирована с другими проектами. Я подозреваю, что большинство разработчиков считают его основой, хотя и менее самоуверенной, чем некоторые другие. Плюсы:
Минусы:
Эмбер. js
|