Underscore.js e jQuery si completano a vicenda? [chiuso]


92

Sto appena iniziando a imparare JavaScript e sono incappato in Underscore.js e jQuery . Underscore sembra davvero interessante ma mi chiedo se jQuery non fornisca già funzioni simili a Underscore. Quindi, vale la pena usarli entrambi?


6
Il primo paragrafo sulla loro home page dice: "È il pareggio per andare insieme allo smoking di jQuery e alle bretelle di Backbone.js."
Anurag

12
sì, ma penso che ciò che l'operazione sta indicando con la parola "complemento" è che poiché molte delle funzioni si sovrappongono, i due framework hanno davvero senso insieme. Ad esempio, le differenze tra $ .each e _.each sono abbastanza sottili da causare confusione a chiunque quando si cerca di mescolare e abbinare tra loro.
BishopZ

1
Se ti piacciono gli underscorejs, dovresti davvero usare lodash.com
Neil

Risposte:


78

Tratto dal sito di sottolineatura :

È la cravatta da abbinare allo smoking di jQuery e alle bretelle di Backbone.js.

Il carattere di sottolineatura è più adatto alla manipolazione dei dati e porta molti metodi Ruby in JavaScript. C'è qualche crossover, ma non abbastanza per escluderli a vicenda.


53
questo è un completo di framework molto personalizzato : P
Anurag


68
  • jQuery si prenderà cura della maggior parte della manipolazione del dominio
  • backbone.js ti aiuterà a organizzare tutto il tuo codice ea dare una struttura alla tua applicazione js (modello mvc)
  • underscore.js ti darà un'utilità di basso livello davvero utile. Non avrei mai avuto bisogno di questa libreria fino a quando non sono entrato davvero nelle app js (è anche un requisito per backbone.js)

39

Il carattere di sottolineatura fornisce un totale di 60 funzioni per l'elaborazione di dati / codice. Si conviene che molte delle funzionalità sono presenti in altre librerie come jQuery, Prototype o script.aculo.us. Ad esempio, funzioni come each, map, find, filter o toArray sono presenti in jQuery. Anche questi sono in trattino basso. Questo per rendere la libreria indipendente da jQuery.

Quando usare il carattere di sottolineatura? :

Attualmente, è ampiamente utilizzato con Backbone.js per utilizzare l'architettura MVC per la creazione di un'app Web Javascript di una pagina. La capacità più significativa di underscore.js è la capacità di creare modelli (cosa che jQuery non può fare). Questa libreria ha molte altre utili funzioni, che sono indipendenti dalle altre librerie Javascript.

Di seguito è riportato un elenco delle funzioni fornite da Underscore:

Raccolte: each, map, reduce, reduceRight, trova, filtro, rifiuta, all, any, include, invoke, pluck, max, min, sortBy, groupBy, SortIndex, shuffle, toArray, size

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

Funzione: bind, bindAll, memoize, delay, defer, throttle, debounce, once, after, wrap, compose

Oggetto: chiavi, valori, funzioni, extended, defaults, clone, tap, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

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


3
ciao Umesh, dal momento che _.template è solo una delle 60 funzioni di sottolineatura, è davvero sufficiente per renderlo utile?
tim peterson

@timpeterson, lo capisco. ma non stiamo solo usando _.template, ci sono molte altre funzioni insieme a quelle come bind, bindAll, each, map ecc. Possiamo usare molte funzioni possibili.
Umesh Patil

3
ma bind, ciascuno, le mappe sono in jQuery quindi sembra ridondante, giusto?
tim peterson

2
Avere Reduce (che jQuery non aggiungerà ) probabilmente lo rende utile da solo!
Rob Grant

9

Se sei preoccupato per la sovrapposizione e non hai bisogno di cose come JQuery AJAX, potresti prendere in considerazione l'utilizzo del solo motore di selezione JQuery, chiamato Sizzle.

http://sizzlejs.com/

Nota che questo non è per tutti i progetti, usando Sizzle e Underscore perderai alcune funzionalità di JQuery (come AJAX), devi considerare ciò di cui hai veramente bisogno per la tua specifica applicazione.


2
projects.jga.me/jquery-builder Questo strumento può aiutarti a rimuovere il codice jQuery non necessario. Inoltre, i moduli lodash sono disponibili su NPM
DigitalDesignDj
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.