2012-01-18 3 views
87

Я только начинаю изучать JavaScript и наткнулся на Underscore.js и jQuery. Подчеркивание выглядит действительно круто, но мне интересно, не поддерживает ли jQuery функции, подобные Underscore. Итак, стоит ли использовать оба?Do Underscore.js и jQuery дополняют друг друга?

+6

В первом абзаце на их домашней странице говорится: «Это галстук, чтобы согласиться с tux jQuery и подтяжки Backbone.js». – Anurag

+12

да, но я думаю, что оп указывает словом «дополнение», так это то, что, поскольку многие функции перекрываются, обе эти структуры действительно имеют смысл. Например, различия между $ .each и _.each достаточно тонки, чтобы заставить кого-то запутаться, пытаясь смешивать и сопоставлять между ними. – BishopZ

+1

Если вам нравится underscorejs, то вам действительно нужно использовать http://lodash.com/ – Neil

ответ

75

Взятые из underscore сайта:

Это галстук, чтобы идти вместе с смокингом JQuery, и помочь Backbone.js в.

Подчеркивание больше подходит для обработки данных и привносит в JavaScript много методов Ruby. Существует некоторый кроссовер, но недостаточно, чтобы сделать их взаимоисключающими.

+50

, это очень обычай * костюм * фреймворков: P – Anurag

+1

[Значение этого галстука] (https://english.stackexchange.com/questions/45904/значение-of-the-the-the-the-tie-to-go-along-with-xs-tux/45909) – Hp93

65
  • JQuery будет заботиться о большинстве ваших манипуляций йот
  • Backbone.js поможет вам организовать весь свой код и дать ваш JS приложения некоторую структуру (MVC шаблон)
  • underscore.js даст вам действительно полезная утилита низкого уровня. Я бы никогда не нуждался в этой библиотеке, пока я действительно не попал в js-приложения (это также требование для backbone.js)
37

Подчеркивание обеспечивает в общей сложности 60 функций для обработки данных/кода. Согласен, что многие функции присутствуют в других библиотеках, таких как jQuery, Prototype или script.aculo.us. Например, в jQuery присутствуют такие функции, как каждый, отображение, поиск, фильтр или toArray. Они также находятся в подчёрке. Это значит, что библиотека не зависит от jQuery.

Когда использовать Подчеркивание?:

В настоящее время он широко используется с Backbone.js для использования архитектуры MVC для создания одного веб-приложения Javascript. Самой значительной способностью underscore.js является возможность шаблонирования (который jQuery не может сделать). Эта библиотека имеет много других полезных функций, которые не зависят от других библиотек Javascript.

Ниже список функций, предоставляемых Underscore:

Коллекции: каждый, карта, уменьшить, reduceRight, найти, фильтр, отвергать, все, любой, включают в себя, вызов, срывать, не более, мин , SortBy, группеПо, sortedIndex, перетасовать, ToArray, размер

Массив: первый, начальный, последний, отдых, компактный, расплющить, без, объединение, пересечение, разность, Uniq, почтовый индекс, IndexOf, LastIndexOf, диапазон

Функция: привязывать, bindAll, memoize, задержка, отложить, дроссель, дребезг, один раз, после того, обертка, составляет

объекта: ключей, ценности, функция, расширить, по умолчанию, клон, водопроводный, IsEqual , IsEmpty, isElement, IsArray, isArguments, isFunction, IsString, IsNumber, isBoolean, IsDate, isRegExp, IsNaN, IsNull, isUndefined

Utitity: noConflict, идентичность, раз, Mixin, UniqueID, побег, шаблон

+3

привет Umesh, так как _.template является только одной из 60 функций Underscore, это действительно достаточно чтобы сделать это стоящим? –

+0

@timpeterson, я это понимаю. но мы используем не только _.template, но и многие другие функции, такие как bind, bindAll, each, map и т. д. Мы можем использовать как можно больше функций. –

+3

но bind, each, map находятся в jQuery, поэтому кажется излишним, не так ли? –

9

Если вас беспокоит совпадение и не нужны такие вещи, как JQuery AJAX, тогда вы можете использовать только механизм селектора JQuery под названием Sizzle.

http://sizzlejs.com/

Обратите внимание, что это не для всех проектов, с помощью Sizzle и Подчеркивают вы потеряете некоторые функции JQuery (как AJAX), вы должны рассмотреть то, что вам действительно нужно для вашего конкретного применения.

+2

http://projects.jga.me/jquery-builder/ Этот инструмент может помочь вам удалить ненужный код jQuery. Кроме того, модули lodash доступны на NPM – DigitalDesignDj

Смежные вопросы