Underscore.js et jQuery se complètent-ils? [fermé]

92

Je commence tout juste à apprendre JavaScript et je suis tombé sur Underscore.js et jQuery . Underscore a l'air vraiment cool mais je me demande si jQuery ne fournit pas déjà des fonctions similaires à Underscore. Alors, vaut-il la peine d'utiliser les deux?

méthode d'aide
la source
6
Le premier paragraphe de leur page d'accueil dit: "C'est le lien qui va avec le smoking de jQuery et les bretelles de Backbone.js."
Anurag
12
oui, mais je pense que ce que l'opération indique avec le mot «complément», c'est que puisque de nombreuses fonctions se chevauchent, les deux cadres ont-ils vraiment un sens ensemble. Par exemple, les différences entre $ .each et _.each sont suffisamment subtiles pour que quiconque soit confus en essayant de les mélanger.
BishopZ
1
Si vous aimez underscorejs, alors vous devriez vraiment utiliser lodash.com
Neil

Réponses:

78

Tiré du site de soulignement :

C'est la cravate qui va avec le tux de jQuery et les bretelles de Backbone.js.

Underscore est plus adapté à la manipulation de données et apporte de nombreuses méthodes Ruby à JavaScript. Il y a des croisements, mais pas assez pour les rendre mutuellement exclusifs.

Gazler
la source
53
c'est un costume très personnalisé de cadres: P
Anurag
68
  • jQuery s'occupera de la plupart de vos manipulations dom
  • backbone.js vous aidera à organiser tout votre code et à donner à votre application js une structure (modèle mvc)
  • underscore.js vous donnera un utilitaire de bas niveau vraiment utile. Je n'aurais jamais eu besoin de cette bibliothèque jusqu'à ce que je sois vraiment entré dans les applications js (c'est aussi une exigence pour backbone.js)
rkw
la source
39

Underscore fournit un total de 60 fonctions pour le traitement des données / code. Il est entendu que de nombreuses fonctionnalités sont présentes dans d'autres bibliothèques comme jQuery, Prototype ou script.aculo.us. Par exemple, des fonctions comme each, map, find, filter ou toArray sont présentes dans jQuery. Ceux-ci sont également dans Underscore. Cela permet de rendre la bibliothèque indépendante de jQuery.

Quand utiliser Underscore? :

Actuellement, il est largement utilisé avec Backbone.js pour utiliser l'architecture MVC pour créer une application Web Javascript d'une page. La capacité la plus importante de underscore.js est la capacité de création de modèles (ce que jQuery ne peut pas faire). Cette bibliothèque a de nombreuses autres fonctions utiles, qui sont indépendantes des autres bibliothèques Javascript.

Retrouvez ci-dessous une liste des fonctions fournies par Underscore:

Collections: chacun, mapper, réduire, réduire à droite, rechercher, filtrer, rejeter, tout, tout, inclure, invoquer, plumer, max, min, sortBy, groupBy, sortedIndex, shuffle, toArray, size

Tableau: premier, initial, dernier, reste, compact, aplatir, sans, union, intersection, différence, uniq, zip, indexOf, lastIndexOf, plage

Fonction: lier, bindAll, mémoriser, retarder, différer, accélérer, anti-rebond, une fois, après, envelopper, composer

Objet: clés, valeurs, fonctions, étendre, valeurs par défaut, clone, tap, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

Utilité: noConflict, identity, times, mixin, uniqueId, escape, template

Umesh Patil
la source
3
salut Umesh, puisque _.template n'est que l'une des 60 fonctions Underscore, est-ce vraiment suffisant pour que cela en vaille la peine?
tim peterson
@timpeterson, je comprends cela. mais nous n'utilisons pas seulement _.template, il y a beaucoup plus de fonctions avec cela comme bind, bindAll, each, map etc. Nous pouvons utiliser autant de fonctions que possible.
Umesh Patil
3
mais lier, chacun, la carte est dans jQuery semble donc redondant, non?
tim peterson
2
Avoir Réduire (que jQuery n'ajoutera pas ) en vaut probablement la peine!
Rob Grant
9

Si vous êtes préoccupé par le chevauchement et que vous n'avez pas besoin de choses comme JQuery AJAX, vous pouvez envisager d'utiliser uniquement le moteur de sélection JQuery, nommé Sizzle.

http://sizzlejs.com/

Notez que ce n'est pas pour tous les projets, en utilisant Sizzle et Underscore, vous perdrez certaines fonctionnalités JQuery (comme AJAX), vous devez considérer ce dont vous avez vraiment besoin pour votre application spécifique.

DigitalDesignDj
la source
2
projects.jga.me/jquery-builder Cet outil peut vous aider à supprimer le code jQuery inutile. En outre, les modules lodash sont disponibles sur NPM
DigitalDesignDj