Apakah Underscore.js dan jQuery saling melengkapi? [Tutup]

92

Saya baru mulai belajar JavaScript, dan tersandung pada Underscore.js dan jQuery . Garis bawah terlihat sangat keren tetapi saya bertanya-tanya apakah jQuery belum menyediakan fungsi yang mirip dengan Garis Bawah. Jadi, apakah bermanfaat untuk menggunakan keduanya?

metode pembantu
sumber
6
Paragraf pertama di halaman beranda mereka mengatakan - "Ini adalah dasi untuk mengikuti tux jQuery, dan suspender Backbone.js."
Anurag
12
ya, tapi menurut saya apa yang ditunjukkan oleh op dengan kata "komplemen" adalah karena banyak fungsi tumpang tindih, apakah kedua kerangka kerja tersebut benar-benar masuk akal bersama. Misalnya, perbedaan antara $ .each dan _.each cukup halus untuk menyebabkan siapa pun menjadi bingung saat mencoba mencampur dan mencocokkan di antara keduanya.
BishopZ
1
Jika Anda suka underscorejs, maka Anda benar-benar harus menggunakan lodash.com
Neil

Jawaban:

78

Diambil dari situs garis bawah :

Ini adalah dasi untuk mengikuti tux jQuery, dan suspender Backbone.js.

Garis bawah lebih cocok untuk manipulasi data dan membawa banyak metode Ruby ke JavaScript. Ada beberapa persilangan, tetapi tidak cukup untuk membuatnya saling eksklusif.

Gazler
sumber
53
itu adalah setelan kerangka kerja yang sangat khusus : P
Anurag
1
Arti Ini dasi
Hp93
68
  • jQuery akan menangani sebagian besar manipulasi dom Anda
  • backbone.js akan membantu Anda mengatur semua kode Anda dan memberi aplikasi js Anda beberapa struktur (pola mvc)
  • underscore.js akan memberi Anda utilitas tingkat rendah yang sangat berguna. Saya tidak akan pernah membutuhkan pustaka ini sampai saya benar-benar masuk ke aplikasi js (ini juga merupakan persyaratan untuk backbone.js)
rkw
sumber
39

Garis bawah menyediakan total 60 fungsi untuk mengolah data / kode. Disepakati bahwa banyak fungsi ada di pustaka lain seperti jQuery, Prototype, atau script.aculo.us. Misalnya, fungsi seperti masing-masing, map, find, filter, atau toArray ada di jQuery. Ini juga ada di Garis Bawah. Ini untuk membuat perpustakaan tidak bergantung pada jQuery.

Kapan menggunakan Garis Bawah? :

Saat ini, banyak digunakan dengan Backbone.js untuk menggunakan arsitektur MVC untuk membuat aplikasi Web Javascript satu halaman. Kemampuan underscore.js yang paling signifikan adalah kemampuan pembuatan template (yang tidak dapat dilakukan jQuery). Pustaka ini memiliki banyak fungsi berguna lainnya, yang tidak bergantung pada pustaka Javascript lainnya.

Temukan di bawah ini daftar fungsi yang disediakan oleh Underscore:

Koleksi: masing-masing, petakan, kurangi, kurangiRight, temukan, filter, tolak, semua, apa saja, termasuk, panggil, petik, maks, min, sortBy, groupBy, sortIndex, shuffle, toArray, size

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

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

Objek: kunci, nilai, fungsi, perluasan, default, klon, ketuk, isEqual, isEmpty, isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined

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

Umesh Patil
sumber
3
hai Umesh, karena _.template hanyalah salah satu dari 60 fungsi Underscore, apakah itu cukup untuk membuatnya bermanfaat?
tim peterson
@ Timpeterson, saya mengerti ini. tetapi Kami tidak hanya menggunakan _.template, ada banyak fungsi lainnya seperti bind, bindAll, each, map, dll. Kami dapat menggunakan banyak fungsi sebanyak mungkin.
Umesh Patil
3
tetapi mengikat, masing-masing, peta ada di jQuery jadi sepertinya mubazir, bukan?
tim peterson
2
Memiliki Reduce (yang tidak akan ditambahkan jQuery ) mungkin membuatnya berharga dengan sendirinya!
Rob Grant
9

Jika Anda khawatir tentang tumpang tindih, dan tidak membutuhkan hal-hal seperti JQuery AJAX, Anda dapat mempertimbangkan untuk menggunakan hanya mesin pemilih JQuery, bernama Sizzle.

http://sizzlejs.com/

Perhatikan bahwa ini bukan untuk semua proyek, dengan menggunakan Sizzle dan Underscore Anda akan kehilangan beberapa fungsionalitas JQuery (seperti AJAX), Anda perlu mempertimbangkan apa yang sebenarnya Anda butuhkan untuk aplikasi spesifik Anda.

DigitalDesignDj
sumber
2
projects.jga.me/jquery-builder Alat ini dapat membantu Anda menghapus kode jQuery yang tidak diperlukan. Selain itu, modul lodash tersedia di NPM
DigitalDesignDj