Чи доповнюють Underscore.js та jQuery одне одного? [зачинено]


92

Я тільки починаю вивчати JavaScript і натрапив на Underscore.js та jQuery . Підкреслення виглядає справді круто, але мені цікаво, чи jQuery ще не надає функцій, подібних до Підкреслення. Отже, чи варто використовувати обидва?


6
Перший абзац на їх домашній сторінці говорить: "Це краватка, яка поєднується зі смокінгом jQuery та підтяжками Backbone.js".
Анураг

12
так, але я думаю, що опис вказує словом "доповнення", це те, що оскільки багато функцій перекриваються, чи справді ці два принципи мають сенс разом. Наприклад, відмінності між $ .each та _.each досить тонкі, щоб у когось виникала плутанина при спробі змішувати та поєднувати між собою.
BishopZ

1
Якщо вам подобається підкреслення, тоді вам дійсно слід використовувати lodash.com
Ніл,

Відповіді:


78

Взято з сайту підкреслення :

Це краватка, яка поєднується зі смокінгом jQuery та підтяжками Backbone.js.

Підкреслення більше підходить для обробки даних і приносить багато методів Ruby до JavaScript. Є деякі кросовери, але недостатні, щоб зробити їх взаємовиключними.


53
це дуже спеціальний костюм фреймворків: P
Анураг


68
  • jQuery подбає про більшість ваших маніпуляцій з домом
  • backbone.js допоможе вам упорядкувати весь ваш код і надати вашій програмі js якусь структуру (шаблон mvc)
  • underscore.js надасть вам справді корисну утиліту низького рівня. Мені б ніколи не була потрібна ця бібліотека, поки я дійсно не зайшов у програми js (це також вимога до backbone.js)

39

Підкреслення забезпечує загалом 60 функцій для обробки даних / коду. Погоджено, що багато функціональних можливостей присутні в інших бібліотеках, таких як jQuery, Prototype або script.aculo.us. Наприклад, такі функції, як кожен, map, find, filter або toArray присутні в jQuery. Вони також підкреслені. Це робить бібліотеку незалежною від jQuery.

Коли використовувати Підкреслення? :

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

Нижче наведено перелік функцій, наданих Underscore:

Колекції: кожна, карта, зменшити, зменшити, право, знайти, фільтрувати, відхилити, усі, будь-які, включати, викликати, виривати, макс., Хв., Сортувати за допомогою, групувати, сортувати за індексом, перетасовувати, до масиву, розмір

Масив: перший, початковий, останній, відпочинок, компактний, сплощений, без, об’єднання, перетин, різниця, uniq, zip, indexOf, lastIndexOf, діапазон

Функція: bind, bindAll, memoize, delay, defer, throttle, debounce, один раз, після, wrap, compose

Об'єкт: ключі, значення, функції, розширити, за замовчуванням, клон, натиснути, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

Utitity: noConflict, identity, times, mixin, uniqueId, escape, template


3
привіт Умеш, оскільки _.template - це лише одна з 60 функцій підкреслення, чи справді цього достатньо, щоб зробити це вартим?
tim peterson

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

3
але прив'язка, кожна карта знаходиться в jQuery, тому здається зайвою, так?
Тім Петерсон

2
Наявність Reduce (чого jQuery не додасть ), мабуть, самоцінне!
Роб Грант

9

Якщо ви стурбовані перекриттям і вам не потрібні речі, такі як JQuery AJAX, ви можете розглянути можливість використання лише механізму селектора JQuery під назвою Sizzle.

http://sizzlejs.com/

Зверніть увагу, що це не для всіх проектів, за допомогою Sizzle та Underscore ви втратите деякі функції JQuery (наприклад, AJAX), вам потрібно врахувати, що вам дійсно потрібно для вашого конкретного додатка.


2
projects.jga.me/jquery-builder Цей інструмент може допомогти вам видалити непотрібний код jQuery. Також модулі lodash доступні на NPM
DigitalDesignDj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.