Underscore.js e jQuery se complementam? [fechadas]

92

Estou apenas começando a aprender JavaScript e tropecei em Underscore.js e jQuery . O sublinhado parece muito legal, mas eu me pergunto se o jQuery já não fornece funções semelhantes ao sublinhado. Então, vale a pena usar os dois?

método auxiliar
fonte
6
O primeiro parágrafo em sua página inicial diz - "É o laço para ir junto com o smoking do jQuery e os suspensórios do Backbone.js."
Anurag de
12
sim, mas acho que o que op está indicando com a palavra "complemento" é que, uma vez que muitas das funções se sobrepõem, as duas estruturas realmente fazem sentido juntas. Por exemplo, as diferenças entre $ .each e _.each são sutis o suficiente para fazer qualquer um ficar confuso ao tentar misturar e combinar entre eles.
BishopZ
1
Se você gosta de underscorejs, então você realmente deveria estar usando lodash.com
Neil

Respostas:

78

Retirado do site sublinhado :

É o laço que vai junto com o smoking do jQuery e os suspensórios do Backbone.js.

Underscore é mais adequado para manipulação de dados e traz muitos métodos Ruby para JavaScript. Existem alguns cruzamentos, mas não o suficiente para torná-los mutuamente exclusivos.

Gazler
fonte
53
isso é um costume muito terno de quadros: P
Anurag
68
  • jQuery cuidará da maior parte da manipulação do seu dom
  • backbone.js irá ajudá-lo a organizar todo o seu código e dar ao seu aplicativo js alguma estrutura (padrão mvc)
  • underscore.js lhe dará um utilitário de baixo nível realmente útil. Eu nunca teria precisado dessa biblioteca até que realmente entrasse nos aplicativos js (também é um requisito para backbone.js)
rkw
fonte
39

O sublinhado fornece um total de 60 funções para processamento de dados / código. É acordado que muitas das funcionalidades estão presentes em outras bibliotecas como jQuery, Prototype ou script.aculo.us. Por exemplo, funções como each, map, find, filter ou toArray estão presentes no jQuery. Também estão em sublinhado. Isso torna a biblioteca independente do jQuery.

Quando usar o Underscore? :

Atualmente, é amplamente usado com Backbone.js para usar a arquitetura MVC para criar um aplicativo da Web Javascript de uma página. A habilidade mais significativa de underscore.js é a habilidade de modelagem (que jQuery não pode fazer). Esta biblioteca possui muitas outras funções úteis, que são independentes de outras bibliotecas Javascript.

Veja abaixo uma lista de funções fornecidas pelo Underscore:

Coleções: cada, mapear, reduzir, reduzirRight, localizar, filtrar, rejeitar, todos, qualquer, incluir, invocar, arrancar, max, min, sortBy, groupBy, SortIndex, shuffle, toArray, size

Matriz: primeiro, inicial, último, resto, compacto, nivelado, sem, união, interseção, diferença, uniq, zip, indexOf, lastIndexOf, intervalo

Função: bind, bindAll, memoize, delay, adiar, throttle, debounce, once, after, wrap, compose

Object: keys, values, functions, extend, defaults, clone, tap, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

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

Umesh Patil
fonte
3
oi Umesh, já que _.template é apenas uma das 60 funções de sublinhado, isso é realmente o suficiente para fazer valer a pena?
tim Peterson
@timpeterson, eu entendo isso. mas não estamos apenas usando _.template, há muito mais funções junto com isso, como bind, bindAll, each, map etc. Podemos usar tantas funções quanto possível.
Umesh Patil
3
mas bind, each, map estão em jQuery então parece redundante, certo?
tim Peterson
2
Ter Reduce (que o jQuery não adiciona ) provavelmente faz com que valha a pena por si só!
Rob Grant
9

Se você está preocupado com a sobreposição e não precisa de coisas como JQuery AJAX, então você pode considerar usar apenas o mecanismo seletor JQuery, chamado Sizzle.

http://sizzlejs.com/

Observe que isso não é para todos os projetos, ao usar Sizzle e Underscore você perderá algumas funcionalidades do JQuery (como AJAX), você precisa considerar o que você realmente precisa para seu aplicativo específico.

DigitalDesignDj
fonte
2
projects.jga.me/jquery-builder Esta ferramenta pode ajudá-lo a remover código jQuery desnecessário. Além disso, os módulos lodash estão disponíveis no NPM
DigitalDesignDj