
Ketika berbicara tentang jQuery, banyak orang mengatakan, “Gunakan saja JavaScript biasa. Anda tidak perlu perpustakaan jQuery. " Apa yang bisa saya katakan? Saya tidak membutuhkan banyak hal, tetapi meskipun demikian, itu baik ketika mereka. Begitu juga jQuery. Saya tidak perlu perpustakaan ini, tapi pasti menyenangkan untuk memilikinya.
Situs-situs seperti
Anda mungkin tidak perlu jQuery (YMNJQ) mempromosikan gagasan bahwa jQuery sangat mudah untuk dihilangkan. Tetapi contoh pertama di situs ini menunjukkan alasan yang baik untuk menggunakan jQuery. Di sana, satu baris kode jQuery sederhana diganti dengan 10 baris JS biasa!
Sebagian besar API JavaScript, terutama yang berfokus pada bekerja dengan DOM, menyinggung perasaan estetika saya. Ini, secara sederhana, sikap saya terhadap mereka. Berbicara langsung, saya pikir API ini adalah mimpi buruk yang lengkap. Misalnya,
el.insertAdjacentElement('afterend', other)
tentu saja berfungsi. Tapi terlihat jauh lebih bagus
$(el).after(other)
. Meskipun saya tidak pernah benar-benar menyukai tampilan fungsi
$()
, ini jauh lebih baik daripada apa yang diberikan API standar untuk bekerja dengan DOM. Saya tahu bahwa alih-alih
$()
Anda dapat menggunakan sesuatu seperti
jQuery(sel)
atau
window.jq = jQuery
. Tapi saya tidak memprogram di ruang tanpa udara. Karena itu, saya lebih suka menggunakan teknik standar. Saya tidak tahu apakah ini baik atau buruk, tetapi standar untuk menggunakan jQuery adalah konstruk
$()
.
Cobalah untuk segera mengingat cara mendapatkan elemen tetangga dari elemen lain menggunakan DOM. Apa yang harus saya gunakan untuk ini -
nextSibling
atau
nextElementSibling
? Apa bedanya? Dan browser mana yang mendukung metode ini atau itu? Saat Anda mencoba mengingat ini dan melihat MDN, memeriksa diri Anda sendiri, saya, menggunakan jQuery, cukup tulis
next()
atau
prev()
.
Melakukan banyak operasi umum yang diterapkan dalam JavaScript API tidak nyaman. Saya bisa memberikan di sini daftar operasi semacam itu, tetapi bagi saya itu dilakukan dengan sempurna di halaman YMNJQ.
Untuk menyelesaikan berbagai masalah sederhana menggunakan alat JS, fungsi tambahan diperlukan. Dan di situs web YMNJQ, sekali lagi, Anda dapat menemukan banyak contoh. Menggunakan jQuery adalah cara standar untuk memasukkan fungsi pembantu seperti itu dalam kode proyek Anda. Pada saat yang sama, programmer tidak perlu setiap kali dia membutuhkan sesuatu seperti ini untuk mengambil potongan kode dari jawaban pertama hingga Stack Overflow yang muncul di lengannya.
Meskipun masalah kompatibilitas browser telah kehilangan tingkat keparahannya akhir-akhir ini, mereka masih relevan. Terutama - bagi mereka yang tidak termasuk dalam kamp pengembang yang percaya bahwa jika sesuatu bekerja di 85% browser, maka itu cocok untuk mereka. Ngomong-ngomong,
ini adalah bahan mengapa Hello CSS tidak menggunakan variabel CSS.
Haruskah saya selalu menggunakan jQuery? Tidak, tentu saja tidak. Ketergantungan tambahan adalah peningkatan kompleksitas proyek dan peningkatan volume kodenya. Tapi jQuery bukan perpustakaan besar. Perakitan standar, diperkecil dan dikompresi, membutuhkan 30 Kb. Perakitan khusus tanpa ajax dan fitur yang jarang digunakan adalah 23 Kb. Dan perakitan, yang menggunakan
querySelector
bukannya
querySelector
, hanya membutuhkan 17 Kb. Untuk mengatasi banyak masalah, saya cukup senang dengan perakitan standar 30 Kb, dan perakitan optimal 17 Kb.
Di sini Anda dapat melihat berapa banyak upaya yang telah dilakukan untuk menghapus jQuery dari Bootstrap dan beralih ke JS biasa.
Pengembang telah menulis fungsi pembantu mereka sendiri. Mereka harus meninggalkan dukungan IE, karena dukungan seperti itu sangat sulit diimplementasikan. Mereka membuat API tidak kompatibel ("kami memecahkan segalanya") dan menghabiskan satu setengah tahun untuk semua ini. Saya tidak bisa mengatakan bahwa apa yang terjadi jauh lebih baik daripada apa yang terjadi.
Saya mengerti alasan untuk menerjemahkan Bootstrap ke JS biasa. Misalnya, pengembang ingin menggunakan Bootstrap dengan Vue.js, atau yang serupa. Dan Vue.js dan jQuery dalam satu proyek sudah agak sulit. Saya adalah pendukung besar untuk mengurangi jumlah kode yang tidak perlu di web (dan di
sini ada beberapa materi tentang ini). Tetapi di sini saya mengusulkan untuk melihat situasi dari sudut pandang pragmatis dan realistis. Apakah dimasukkannya kode jQuery 17 KB dalam Bootstrap - apakah seburuk itu? Ketika saya mengatakan bahwa untuk melihat situs-situs seperti Medium atau New York Times, Anda perlu mengunduh lebih dari satu megabyte kode JavaScript, untuk melindungi situasi ini, mereka bertanya kepada saya apakah saya duduk di jalur modem 56-kilobit. Megabyte JS baik-baik saja. Apakah 17Kb jQuery sangat berat?
Ada alasan bagus untuk tidak menggunakan jQuery. Misalnya, jQuery tidak diperlukan jika Anda menulis kode yang ingin Anda bagikan dengan orang lain, atau jika Anda membuat beberapa fungsi kecil. Tapi mengapa harus keluar agar tidak menggunakan jQuery? Mengapa semua usaha ini jika Anda hanya dapat menulis
$()
? Saya tidak berpikir jQuery harus digunakan di mana-mana dan selalu, tetapi saya tidak berpikir penolakan fanatik terhadap jQuery benar.
Saya ingin mencatat bahwa saya belum menikah dengan jQuery. Saya akan senang menggunakan sesuatu seperti "jQuery light" - sejenis perpustakaan yang mencakup kekurangan API standar, memberikan sesuatu yang lebih menyenangkan kepada programmer. Situs YMNJQ merekomendasikan, antara lain,
perpustakaan bonzo dan
$ dom , yang dirancang untuk memecahkan berbagai masalah. Tetapi banyak dari mereka, sepertinya, belum didukung untuk waktu yang lama. Selain itu, banyak yang sudah tahu jQuery. Mengapa mengganti jQuery untuk hal lain tanpa alasan yang jelas?
Banyak pembaca mungkin bertanya-tanya apa yang bisa saya, dalam konteks materi ini, dapat katakan tentang Vue.js, React, dan kerangka kerja modern lainnya. Tetapi tujuan dari artikel ini adalah untuk memetakan JavaScript dan jQuery, daripada menawarkan komunitas “Teori Pengembangan Frontend Umum yang Agung”.
Mengingat hal di atas, saya percaya bahwa saya dapat menemukan beberapa alasan untuk menggunakan JS biasa di mana Anda dapat menggunakan jQuery. Ini terutama disebabkan oleh kenyataan bahwa saya ingin membuat halaman cepat dan menggunakan konstruksi kerja yang paling sederhana. Pada saat yang sama, saya berusaha untuk memastikan bahwa sebanyak mungkin pengguna Web dapat melihat halaman saya. Pengalaman memberi tahu saya bahwa cara terpendek untuk mencapai tujuan ini adalah templat yang dibuat di server, yang sedikit dibumbui dengan JavaScript dalam gaya "peningkatan progresif". Jika Anda membandingkan proyek seperti itu dengan sesuatu yang menggunakan sesuatu yang lebih kompleks, ternyata proyek tersebut lebih mudah untuk dikembangkan. Proyek seperti itu biasanya lebih cepat, mereka biasanya memiliki kesalahan lebih sedikit, dan saat mengerjakannya, kipas laptop tidak membuat suara yang dapat membangunkan seluruh rumah.
Apakah ini berarti bahwa kerangka kerja web modern dan perpustakaan yang kuat selalu buruk? Tidak, tidak. Sangat sedikit yang layak untuk selalu disebut buruk atau baik. Tetapi menggunakan kerangka kerja berarti membuat beberapa kompromi (ini, tentu saja, berlaku untuk jQuery).
Secara umum, saya melihat web sebagai lingkungan untuk melihat dokumen, dan bukan sesuatu seperti sistem operasi. Dan "pendekatan dokumen" bagus tidak hanya untuk situs biasa, tetapi juga untuk banyak "aplikasi web" (apa pun sebutannya).
Pembaca yang budiman! Apakah Anda menggunakan jQuery?

