Ergänzen sich Underscore.js und jQuery? [geschlossen]


92

Ich fange gerade an, JavaScript zu lernen und bin über Underscore.js und jQuery gestolpert . Unterstrich sieht wirklich cool aus, aber ich frage mich, ob jQuery nicht bereits ähnliche Funktionen wie Unterstrich bietet. Lohnt es sich also, beide zu verwenden?


6
Der erste Absatz auf ihrer Homepage lautet: "Es ist die Krawatte, die zu jQuerys Smoking und den Hosenträgern von Backbone.js passt."
Anurag

12
Ja, aber ich denke, was die Operation mit dem Wort "Komplement" anzeigt, ist, dass, da sich viele der Funktionen überschneiden, die beiden Frameworks zusammen wirklich Sinn machen. Zum Beispiel sind die Unterschiede zwischen $ .each und _.each so subtil, dass jeder verwirrt wird, wenn er versucht, sie zu mischen und zu vergleichen.
BishopZ

1
Wenn Sie Unterstriche mögen, dann sollten Sie wirklich lodash.com
Neil

Antworten:


78

Entnommen von der Unterstrichseite :

Es ist die Krawatte, die zu jQuerys Smoking und den Hosenträgern von Backbone.js passt.

Der Unterstrich eignet sich besser für die Datenmanipulation und bringt viele Ruby-Methoden in JavaScript. Es gibt einige Überkreuzungen, aber nicht genug, um sie gegenseitig auszuschließen.


53
Das ist ein sehr individueller Anzug von Frameworks: P
Anurag


68
  • jQuery kümmert sich um den größten Teil Ihrer Dom-Manipulation
  • backbone.js hilft Ihnen dabei, Ihren gesamten Code zu organisieren und Ihrer js-Anwendung eine Struktur zu geben (mvc-Muster).
  • underscore.js bietet Ihnen ein wirklich nützliches Dienstprogramm auf niedriger Ebene. Ich hätte diese Bibliothek nie gebraucht, bis ich mich wirklich mit js apps befasst hätte (dies ist auch eine Voraussetzung für backbone.js).

39

Der Unterstrich bietet insgesamt 60 Funktionen zur Verarbeitung von Daten / Code. Es besteht Einigkeit darüber, dass viele der Funktionen in anderen Bibliotheken wie jQuery, Prototype oder script.aculo.us vorhanden sind. Beispielsweise sind in jQuery Funktionen wie "map", "find", "filter" oder "toArray" vorhanden. Diese sind auch in Unterstrich. Dies dient dazu, die Bibliothek von jQuery unabhängig zu machen.

Wann wird Underscore verwendet? ::

Derzeit wird es häufig mit Backbone.js verwendet, um die MVC-Architektur zum Erstellen einer einseitigen Javascript-Webanwendung zu verwenden. Die wichtigste Fähigkeit von underscore.js ist die Fähigkeit des Templating (was jQuery nicht kann). Diese Bibliothek verfügt über viele andere nützliche Funktionen, die von anderen Javascript-Bibliotheken unabhängig sind.

Nachfolgend finden Sie eine Liste der von Underscore bereitgestellten Funktionen:

Sammlungen: jeweils, zuordnen, reduzieren, reduzieren, korrigieren, suchen, filtern, ablehnen, alle, alle, enthalten, aufrufen, zupfen, max, min, sortBy, groupBy, sortierterIndex, mischen, toArray, Größe

Array: first, initial, last, rest, compact, flatten, without, union, überschneiden, differenz, uniq, zip, indexOf, lastIndexOf, range

Funktion: binden, bindenAll, auswendig lernen, verzögern, verschieben, drosseln, entprellen, einmal, nachher, umbrechen, komponieren

Objekt: Schlüssel, Werte, Funktionen, Erweitern, Standard, Klonen, Tippen, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

Dienstprogramm: noConflict, Identität, Zeiten, Mixin, UniqueId, Escape, Vorlage


3
Hallo Umesh, da _.template nur eine der 60 Unterstreichungsfunktionen ist, ist das wirklich genug, um es lohnenswert zu machen?
Tim Peterson

@timpeterson, ich verstehe das. Wir verwenden jedoch nicht nur _.template, sondern auch viele weitere Funktionen wie bind, bindAll, each, map usw. Wir können so viele Funktionen wie möglich verwenden.
Umesh Patil

3
Aber binden Sie jede Karte in jQuery, also scheint sie überflüssig zu sein, oder?
Tim Peterson

2
Reduzieren (was jQuery nicht hinzufügt ) lohnt sich wahrscheinlich von alleine!
Rob Grant

9

Wenn Sie sich Sorgen über Überlappungen machen und keine Dinge wie JQuery AJAX benötigen, sollten Sie möglicherweise nur die JQuery-Selektor-Engine mit dem Namen Sizzle verwenden.

http://sizzlejs.com/

Beachten Sie, dass dies nicht für alle Projekte gilt. Wenn Sie Sizzle und Underscore verwenden, verlieren Sie einige JQuery-Funktionen (wie AJAX). Sie müssen überlegen, was Sie wirklich für Ihre spezifische Anwendung benötigen.


2
projects.jga.me/jquery-builder Mit diesem Tool können Sie nicht benötigten jQuery-Code entfernen. Lodash-Module sind auch auf NPM
DigitalDesignDj
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.