2012-01-18 5 views
87

Estoy empezando a aprender JavaScript, y tropecé con Underscore.js y jQuery. Underscore se ve muy bien, pero me pregunto si jQuery ya no ofrece funciones similares a Underscore. Entonces, ¿vale la pena usar ambos?¿Se complementan Underscore.js y jQuery?

+6

El primer párrafo en su página de inicio dice: "Es el vínculo para ir junto con el tux de jQuery y los tirantes de Backbone.js". – Anurag

+12

sí, pero creo que lo que la operación indica 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 hacer que alguien se confunda al intentar mezclarlos y combinarlos. – BishopZ

+1

Si te gusta underscorejs, entonces realmente deberías estar usando http://lodash.com/ – Neil

Respuesta

75

tomado del sitio underscore:

Es la corbata para ir junto con esmoquin de jQuery, y tirantes de Backbone.js.

Underscore es más adecuado para la manipulación de datos y trae muchos métodos de Ruby a JavaScript. Hay algo de cruce, pero no lo suficiente como para que sean mutuamente excluyentes.

+50

que es un * traje * de frameworks muy personalizado: P – Anurag

+1

[Significado de It's the tie] (https://english.stackexchange.com/questions/45904/meaning-of-its-the-tie-to-go-along-with-xs-tux/45909) – Hp93

65
  • jQuery se hará cargo de la mayor parte de su manipulación del DOM
  • Backbone.js le ayudará a organizar todo su código y darle a su aplicación js alguna estructura (patrón MVC)
  • underscore.js le dará utilidad de bajo nivel realmente útil. Nunca habría necesitado esta biblioteca hasta que realmente me metí en aplicaciones js (también es un requisito para backbone.js)
37

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

¿Cuándo utilizar el subrayado?:

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

A continuación encontrará una lista de las funciones proporcionadas por Subrayado:

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

matriz: primero, inicial, apellido, descanso, compacto, aplanar, sin, unión, intersección, diferencia, uniq, código postal, indexOf, lastIndexOf, gama

Función: bind, bindAll, memoize, retardo, aplazar, válvula reguladora, de supresión de rebotes, una vez, después, abrigo, componen

objeto: claves, los valores, funciones, extender, valores predeterminados, clon, grifo, IsEqual isEmpty, isElement, isArray, isArguments, isFunction, isString, ISNUMBER, IsBoolean, ISDATE, isRegExp, isNaN, isNull, isUndefined

Utitity: noConflict, la identidad, los tiempos, mixin, uniqueId, escape, plantilla

+3

hola Umesh, ya que _.template es solo una de las 60 funciones de Subrayado, es realmente suficiente para que valga la pena? –

+0

@timpeterson, entiendo esto. pero no solo estamos usando _.template, hay muchas más funciones junto con eso como bind, bindAll, cada uno, mapa, etc. Podemos usar muchas funciones como sea posible. –

+3

pero enlace, cada uno, el mapa está en jQuery, así que parece redundante, ¿no? –

9

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

http://sizzlejs.com/

Tenga en cuenta que esto no es para todos los proyectos, mediante el uso de chisporroteo y subrayan que perderá algunas funciones jQuery (como AJAX), debe tener en cuenta lo que realmente necesita para su aplicación específica.

+2

http://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

Cuestiones relacionadas