Underscore.js ve jQuery birbirini tamamlıyor mu? [kapalı]


92

JavaScript öğrenmeye yeni başladım ve Underscore.js ile karşılaştım ve jQuery ile karşılaştım . Alt çizgi gerçekten harika görünüyor, ancak jQuery'nin Alt Çizgi'ye benzer işlevler sunup sunmadığını merak ediyorum. Öyleyse, ikisini de kullanmaya değer mi?


6
Ana sayfalarındaki ilk paragrafta - "jQuery'nin smokini ve Backbone.js'nin pantolon askısı ile uyumlu bir kravat" diyor.
Anurag

12
evet, ama bence operasyonun "tamamlayıcı" kelimesiyle ifade ettiği şey, işlevlerin çoğu örtüştüğü için, iki çerçevenin birlikte gerçekten anlamlı olması. Örneğin, $ .each ve _.each arasındaki farklar, aralarında karıştırmaya ve eşleşmeye çalışırken herkesin kafasının karışmasına neden olacak kadar incedir.
BishopZ

Yanıtlar:


78

Alt çizgi sitesinden alınmıştır:

JQuery'nin smokini ve Backbone.js'nin pantolon askısı ile uyumlu bir kravat.

Alt çizgi, veri işleme için daha uygundur ve birçok Ruby yöntemini JavaScript'e getirir. Bazı geçişler var, ancak bunları birbirini dışlayan yapmak için yeterli değil.


53
bu çok özel bir çerçeve takımı : P
Anurag


68
  • jQuery, etki alanı manipülasyonunuzun çoğunu halleder
  • backbone.js, tüm kodunuzu düzenlemenize ve js uygulamanıza bir yapı (mvc kalıbı) vermenize yardımcı olacaktır.
  • undercore.js size gerçekten yararlı, düşük seviyeli bir yardımcı program sağlayacaktır. Gerçekten js uygulamalarına girene kadar bu kitaplığa asla ihtiyaç duymazdım (bu aynı zamanda backbone.js için bir gerekliliktir)

39

Alt çizgi, veri / kod işlemek için toplam 60 işlev sağlar. JQuery, Prototype veya script.aculo.us gibi diğer kütüphanelerde birçok işlevin mevcut olduğu kabul edilmektedir. Örneğin, her biri, eşleme, bulma, filtreleme veya toArray gibi işlevler jQuery'de mevcuttur. Bunlar da Alt Çizgi'de. Bu, kütüphaneyi jQuery'den bağımsız kılmak içindir.

Alt Çizgi ne zaman kullanılır?:

Şu anda, tek sayfalık bir Javascript Web uygulaması oluşturmak için MVC mimarisini kullanmak için Backbone.js ile yaygın olarak kullanılmaktadır. Undercore.js'nin en önemli yeteneği şablon oluşturma yeteneğidir (jQuery bunu yapamaz). Bu kitaplık, diğer Javascript kitaplıklarından bağımsız olan birçok yararlı işleve sahiptir.

Alt Çizgi tarafından sağlanan işlevlerin listesini aşağıda bulabilirsiniz:

Koleksiyonlar: her biri, eşleme, azaltma, azaltma, bulma, filtreleme, reddetme, tümü, herhangi biri, dahil etme, çağırma, koparma, max, min, sortBy, groupBy, sıralanmışIndex, shuffle, toArray, boyut

Dizi: ilk, ilk, son, dinlenme, kompakt, düzleştir, olmadan, birleşim, kesişim, fark, uniq, zip, indexOf, lastIndexOf, aralık

İşlev: bind, bindAll, memoize, delay, erteleme, gaz, geri alma, bir kez, sonra, sarma, oluşturma

Nesne: anahtarlar, değerler, işlevler, genişletme, varsayılanlar, klonlama, dokunma, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

Utitity: noConflict, kimlik, zamanlar, mixin, benzersizId, kaçış, şablon


3
merhaba Umesh, _.template 60 Underscore işlevinden yalnızca biri olduğundan, onu değerli kılmak için gerçekten yeterli mi?
tim peterson

@timpeterson, bunu anlıyorum. ancak sadece _.template kullanmıyoruz, bunun yanında bind, bindAll, each, map vb. gibi daha birçok fonksiyon var. Mümkün olduğu kadar çok sayıda fonksiyon kullanabiliriz.
Umesh Patil

3
ancak her biri, harita jQuery'de olduğundan gereksiz görünüyor, değil mi?
tim peterson

2
Azaltmak ( jQuery eklemeyecektir ), muhtemelen tek başına onu değerli kılar!
Rob Grant

9

Örtüşme konusunda endişeleriniz varsa ve JQuery AJAX gibi şeylere ihtiyacınız yoksa, sadece Sizzle adlı JQuery seçici motorunu kullanmayı düşünebilirsiniz.

http://sizzlejs.com/

Bunun tüm projeler için olmadığını unutmayın, Sizzle ve Underscore kullanarak bazı JQuery işlevlerini kaybedersiniz (AJAX gibi), özel uygulamanız için gerçekten neye ihtiyacınız olduğunu düşünmeniz gerekir.


2
projects.jga.me/jquery-builder Bu araç, gereksiz jQuery kodunu kaldırmanıza yardımcı olabilir. Ayrıca, lodash modülleri
DigitalDesignDj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.