¿Se complementan Underscore.js y jQuery? [cerrado]

92

Estoy empezando a aprender JavaScript y me encontré con Underscore.js y jQuery . El subrayado se ve muy bien, pero me pregunto si jQuery no proporciona funciones similares a Underscore. Entonces, ¿vale la pena usar ambos?

método de ayuda
fuente
6
El primer párrafo de su página de inicio dice: "Es la corbata que va junto con el esmoquin de jQuery y los tirantes de Backbone.js".
Anurag
12
sí, pero creo que lo que indica la operación con la palabra "complemento" es que, dado que muchas de las funciones se superponen, ¿los dos marcos realmente tienen sentido juntos? Por ejemplo, las diferencias entre $ .each y _.each son lo suficientemente sutiles como para confundir a cualquiera al intentar mezclar y combinar entre ellos.
BishopZ
1
Si te gustan los subrayados, entonces deberías usar lodash.com
Neil

Respuestas:

78

Tomado del sitio de subrayado :

Es la corbata que va junto con el esmoquin de jQuery y los tirantes de Backbone.js.

Subrayado es más adecuado para la manipulación de datos y trae muchos métodos Ruby a JavaScript. Hay algunos cruces, pero no lo suficiente como para que se excluyan mutuamente.

Gazler
fuente
53
ese es un traje de marcos muy personalizado : P
Anurag
68
  • jQuery se encargará de la mayor parte de la manipulación de tu dom
  • backbone.js lo ayudará a organizar todo su código y le dará a su aplicación js algo de estructura (patrón mvc)
  • underscore.js le brindará una utilidad de bajo nivel realmente útil. Nunca hubiera necesitado esta biblioteca hasta que realmente me metí en las aplicaciones js (también es un requisito para backbone.js)
rkw
fuente
39

Underscore proporciona un total de 60 funciones para procesar datos / código. Se acuerda que muchas de las funcionalidades están presentes en otras librerías como jQuery, Prototype o script.aculo.us. Por ejemplo, funciones como each, map, find, filter o toArray están presentes en jQuery. Estos también están en subrayado. Esto es para que la biblioteca sea independiente de jQuery.

¿Cuándo usar el subrayado? :

Actualmente, se usa ampliamente con Backbone.js para usar la arquitectura MVC para crear una aplicación web Javascript de una página. La capacidad más significativa de underscore.js es la capacidad de crear plantillas (lo que jQuery no puede hacer). Esta biblioteca tiene muchas otras funciones útiles, que son independientes de otras bibliotecas de Javascript.

Encuentre a continuación una lista de funciones proporcionadas por Underscore:

Colecciones: cada, mapa, reducir, reduceRight, buscar, filtrar, rechazar, todos, cualesquiera, incluir, de invocación, desplume, máximo, mínimo, sortBy, GroupBy, sortedIndex, shuffle, toArray, tamaño

Array: first, initial, last, rest, compact, flatten, without, union, intersection, difference, uniq, zip, indexOf, lastIndexOf, range

Función: bind, bindAll, memoize, delay, aplazar, throttle, debounce, once, after, wrap, compose

Objeto: claves, valores, funciones, extender, valores predeterminados, clonar, tocar, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

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

Umesh Patil
fuente
3
hola Umesh, dado que _.template es solo una de las 60 funciones de subrayado, ¿es eso realmente suficiente para que valga la pena?
tim peterson
@timpeterson, entiendo esto. pero no solo estamos usando _.template, hay muchas más funciones además de bind, bindAll, each, map, etc. Podemos usar tantas funciones como sea posible.
Umesh Patil
3
pero bind, each, map están en jQuery, por lo que parece redundante, ¿verdad?
tim peterson
2
¡Tener Reducir (que jQuery no agregará ) probablemente hace que valga la pena por sí solo!
Rob Grant
9

Si le preocupa la superposición y no necesita cosas como JQuery AJAX, entonces podría considerar usar solo el motor selector de JQuery, llamado Sizzle.

http://sizzlejs.com/

Tenga en cuenta que esto no es para todos los proyectos, al usar Sizzle y Underscore perderá algunas funciones de JQuery (como AJAX), debe considerar lo que realmente necesita para su aplicación específica.

DigitalDesignDj
fuente
2
projects.jga.me/jquery-builder Esta herramienta puede ayudarlo a eliminar el código jQuery innecesario. Además, los módulos lodash están disponibles en NPM
DigitalDesignDj