Perbedaan antara jQuery vs. AngularJS vs. Node.js [ditutup]

106

Saya baru saja memulai pengembangan web, dan sejauh ini saya tahu:

HTML - tata letak situs web

CSS - membuatnya terlihat cantik

JavaScript - fungsionalitas

Lalu apa itu jQuery , AngularJS , dan Node.js ?

Setelah melakukan pencarian cepat, saya menemukan jQuery adalah "perpustakaan JavaScript", AngularJS adalah "kerangka kerja aplikasi web front-end open-source berbasis JavaScript", dan Node.js adalah "lingkungan runtime JavaScript".

Sepertinya semuanya terkait dengan JavaScript, jadi apakah itu bahasa baru? Apa artinya 'framework / library'?

Jawaban sederhana akan dihargai. (Saya baru memulai pemrograman web, tetapi saya terbiasa dengan pemrograman).

K Split X
sumber
2
Sebuah "perpustakaan" pada dasarnya hanyalah kumpulan fungsi berguna yang telah ditulis dan diuji orang lain untuk Anda - jQuery adalah kumpulan fungsi JavaScript. Sebuah "framework" adalah semacam abstraksi di mana kode struktur aplikasi umum telah dituliskan untuk Anda, dan Anda dapat mengganti bit-bitnya sesuai kebutuhan aplikasi Anda. NodeJS adalah alat yang memungkinkan Anda menjalankan JavaScript di tempat lain selain di browser (sering kali di server web, jadi alih-alih Java atau DotNET atau PHP atau apa pun).
nnnnnn
3
Kamu akan baik-baik saja. Anda tahu mengapa? Karena Anda adalah penutur bahasa Inggris. Ada banyak hal di luar sana untuk Anda. Anda hanya perlu meluangkan waktu dan mempelajarinya. Di negara saya, bahasa Inggris adalah masalah besar. Saya kenal banyak orang, berjuang belajar pemrograman (banyak yang menyerah dan pindah ke pekerjaan lain) hanya karena bahasa Inggris di sana tidak bagus. Namun, seperti yang saya katakan, itu akan memakan banyak waktu dari Anda.
vothaison
Lihat juga pertanyaan ini .
nnnnnn

Jawaban:

202

jQuery adalah perpustakaan (sisi klien)

jQuery adalah pustaka JavaScript yang cepat, kecil, ringan, "tulis lebih sedikit, lakukan lebih banyak", dan kaya fitur.

Itu membuat hal-hal seperti traversal dan manipulasi dokumen HTML, penanganan acara, animasi, dan Ajax jauh lebih sederhana dengan API yang mudah digunakan yang bekerja di banyak browser.

AngularJS adalah kerangka kerja MVC (sisi klien)

AngularJS adalah kerangka kerja MVC JavaScript sisi klien untuk mengembangkan aplikasi web dinamis.

Ini memungkinkan Anda menggunakan HTML sebagai bahasa template Anda dan memungkinkan Anda memperluas sintaks HTML untuk mengekspresikan komponen aplikasi Anda dengan jelas dan ringkas. Data binding dan injeksi dependensi AngularJS menghilangkan banyak kode yang seharusnya Anda tulis. Dan semuanya terjadi di dalam browser, menjadikannya mitra yang ideal dengan teknologi server apa pun. AngularJS awalnya dimulai sebagai proyek di Google, tetapi sekarang menjadi kerangka kerja open source.

Node.js adalah platform dan lingkungan runtime (sisi server)

Node.js adalah sumber terbuka, lingkungan runtime lintas platform untuk mengembangkan aplikasi sisi server dan jaringan yang dibangun di Mesin JavaScript Google Chrome (Mesin V8). Aplikasi Node.js ditulis dalam JavaScript, dan dapat dijalankan dalam runtime Node.js di OS X, Microsoft Windows, dan Linux.

Node.js juga menyediakan pustaka yang kaya dari berbagai modul JavaScript yang menyederhanakan pengembangan aplikasi web menggunakan Node.js secara luas. Node.js menggunakan model I / O yang digerakkan oleh peristiwa dan non-pemblokiran yang membuatnya ringan dan efisien, cocok untuk aplikasi real-time intensif data yang dijalankan di perangkat terdistribusi.

Perpustakaan vs. Kerangka

Perbedaan utama antara perpustakaan dan kerangka kerja adalah "Inversion of Control". Saat Anda memanggil metode dari pustaka, Anda memegang kendali. Tapi dengan kerangka kerja, kontrolnya terbalik: kerangka memanggil Anda.

Masukkan deskripsi gambar di sini

Perpustakaan

Kumpulan fungsi yang berguna saat menulis aplikasi web. Kode Anda yang bertanggung jawab dan akan dipanggil ke perpustakaan jika dipandang perlu. Misalnya, jQuery.

Kerangka

Penerapan tertentu dari aplikasi web, di mana kode Anda mengisi detail. Kerangka kerja bertanggung jawab, dan memanggil kode Anda ketika membutuhkan sesuatu yang khusus untuk aplikasi. Misalnya, AngularJS, Durandal , Ember.js , dll.

Aruna
sumber
27

Dengan kata sederhana,

  • jQuery - adalah kumpulan fungsi JavaScript untuk memanipulasi HTML dan CSS
  • AngularJS - adalah kerangka kerja JavaScript yang membantu Anda mengatur HTML dan CSS
  • Node.js- adalah runtime JavaScript ... seperti browser di server atau mesin lokal Anda, tetapi tanpa semua mesin rendering browser dan ekstra .. itu hanya runtime

Perbedaan utama antara library vs. framework dalam kata sederhana:
Framework menerapkan arsitektur tertentu dan mengharapkan aplikasi mengikuti ekspektasinya.
Library adalah kumpulan blok penyusun tingkat rendah yang sering kali menyediakan fungsi granular yang bertujuan untuk memecahkan masalah yang sangat spesifik (yaitu jquery.post () fungsi)*

Dmitry Matveev
sumber
17

jQuery

jQuery adalah pustaka yang melakukan banyak hal untuk Anda. Ini berisi banyak fungsi praktis dan umum digunakan sehingga Anda tidak perlu menulis kode ini sendiri. Ini semacam perbedaan antara menjadi tukang kayu di zaman batu, atau memiliki berbagai peralatan listrik yang Anda inginkan.

AngularJS

AngularJS adalah kerangka kerja yang digunakan untuk membangun antarmuka pengguna grafis (GUI) front-end untuk situs web dan aplikasi web interaktif. Itu membuat kombinasi yang kuat saat digunakan bersama Node.js

Node.js

Node adalah kerangka kerja yang digunakan untuk membangun layanan web back-end , seperti API REST titik akhir yang menarik data untuk Anda di latar belakang. Anda dapat menghubungkan tombol dan elemen GUI ke titik akhir ini menggunakan AngularJS untuk membuat aplikasi web dan laporan web berbasis data yang kaya. Menjadi tenang, layanan ini menunggu sampai ujung depan mengirimi mereka permintaan (pengguna mengklik tombol) dan mereka mengeksekusi kueri database atau membaca file dan memuntahkan beberapa data kembali, yang kemudian dapat ditampilkan aplikasi web kepada pengguna.

Kerangka secara umum

Kerangka kerja dalam analogi tukang kayu sebelumnya seperti mengontrak tim pembangun profesional untuk melakukan pekerjaan untuk Anda. Anda mendeskripsikan pekerjaan dengan cukup detail, dan mereka mengambil alih dan benar-benar menyelesaikannya. Dengan demikian, tugas Anda direduksi menjadi menghasilkan spesifikasi pekerjaan dalam bahasa yang benar untuk dipahami oleh tim pembangun, daripada melakukan pekerjaan itu sendiri.

AngularJS akan menjadi seperti tim desain interior bersama dengan listrik, dan Node.js akan menjadi segalanya. Terlalu disederhanakan? Mungkin. Tapi Anda meminta penjelasan sederhana.

Jadi, Anda bisa menganggap AngularJS dan Node.js sebagai kebalikannya, tetapi keduanya dapat digunakan bersama dalam aplikasi atau proyek yang sama. Mereka mengisi tujuan yang berbeda, tetapi keduanya menggunakan JavaScript (dan jQuery sampai batas tertentu) untuk melakukannya.

Tim
sumber
7
  • Kerangka : Ini menjelaskan struktur tertentu tentang bagaimana Anda harus menyajikan kode Anda. Mirip seperti template kode, bersama beberapa pembantu, konstruktor, dll. Untuk memecahkan / menyederhanakan masalah tertentu atau membuat arsitektur Anda "teratur". Contoh, Backbone.js , RequireJS, Socket.IO . Kerangka kerja merangkum fungsionalitas aplikasi umum, memungkinkan pengembang untuk fokus pada bagian-bagian yang unik untuk aplikasi mereka.

  • Library : Merupakan keseluruhan toolkit yang sangat mengabstraksi berbagai lapisan, seperti browser, model DOM, dll. Juga sebagai toolkit yang baik, ia menawarkan banyak alat dan hal-hal yang rapi untuk dikerjakan, yang secara umum, menyederhanakan pengalaman pengkodean Anda. Contohnya adalah jQuery dan MooTools .

Lihat di sini untuk informasi lebih lanjut.

Yaser
sumber
"Library: Merupakan keseluruhan toolkit" - Memperhatikan bahwa ini bisa menjadi toolkit yang sangat kecil jika tujuannya adalah untuk menangani, katakanlah, hanya data tanggal / waktu.
nnnnnn
7

Inilah mengapa mereka semakin populer dari hari ke hari:

jQuery

  • Kode jquery relatif lebih pendek. Terkadang hanya lima baris kode jQuery yang setara dengan 25 baris kode JavaScript konvensional (misalnya memuat file data dengan AJAX). Ini berarti lebih sedikit kode dan file yang jauh lebih kecil.
  • Perpustakaan besar: jQuery memungkinkan Anda melakukan banyak fungsi dibandingkan dengan perpustakaan JavaScript lainnya.
  • Super Easy bekerja dengan Ajax: jQuery memungkinkan Anda mengembangkan template Ajax dengan sangat mudah, Ajax memungkinkan antarmuka yang lebih ramping di mana tindakan dapat dilakukan pada halaman tanpa memerlukan seluruh halaman untuk dimuat ulang.

AngularJS

  • Pengikatan data dua arah: Meskipun Anda dapat menulis peristiwa pengikatan data dua arah sederhana di jQuery, pustaka MVC JavaScript menyediakan cara yang lebih deklaratif (menggunakan HTML) untuk menghubungkan model ke tampilan Anda.
  • Bagus untuk SPA ( aplikasi satu halaman ): Perpustakaan seperti AngularJS, Aurelia, Ember.js , dan Meteor menyediakan semua saluran air untuk Anda alih-alih menulis semuanya di jQuery

Node.js

  • Cepat: Selain eksekusi JavaScript secepat kilat, keajaiban nyata di balik Node.js adalah loop peristiwa. Perulangan peristiwa adalah utas tunggal yang melakukan semua operasi I / O secara asinkron. Secara tradisional, operasi I / O berjalan secara sinkron (memblokir) atau secara asinkron dengan memunculkan thread paralel untuk melakukan pekerjaan tersebut.
  • Kemudahan Waktu Nyata: Jika Node.js unggul dalam banyak koneksi bersamaan, masuk akal jika Node.js unggul di aplikasi web waktu nyata multi-pengguna seperti obrolan dan game. Perulangan peristiwa Node.js menangani persyaratan multi-pengguna.
ab29007
sumber
2
"5 baris kode jQuery setara dengan 25 baris kode JavaScript konvensional" - Bergantung pada apa yang Anda coba lakukan. Untuk beberapa tugas hanya ada sedikit perbedaan, untuk yang lain ada perbedaan besar. "Ini berarti file lebih kecil dan halaman web memuat lebih cepat." - Kecuali bahwa kode jQuery yang menyelamatkan Anda dari menulis untuk diri sendiri semuanya terdapat dalam file jQuery yang juga harus diunduh ke browser. Jadi jumlah total kode mungkin lebih banyak.
nnnnnn
file-file itu dimuat saat dokumen dimuat. karena praktik terbaiknya adalah tidak menggunakan js hingga DOM dimuat. mereka tidak membuat perbedaan dalam kecepatan eksekusi peristiwa klik atau hover Anda
ab29007
Dalam jawaban Anda, Anda mengatakan "memuat lebih cepat". Itu tidak benar, atau tentunya tidak benar secara universal. File yang dimuat "saat dokumen dimuat" masih harus diunduh, dan (tergantung pada halaman) harus diunduh sebelum pengguna dapat berinteraksi secara bermakna dengan halaman. (Catatan: Saya tidak mengatakan jQuery adalah hal yang buruk sama sekali, hanya saja deskripsi Anda paling menyesatkan.)
nnnnnn
ok .. jika menurut Anda demikian, saya akan menghapus pemuatan lebih cepat
ab29007
Dapatkah saya menulis JQuery dan javascript dalam program yang sama
K Split X
6

Anda menggunakan HTML, CSS, dan JavaScript untuk membuat situs web interaktif.

jQuery adalah alat yang ditulis dalam JavaScript.

AngularJS adalah alat yang ditulis dalam JavaScript.

React adalah alat yang ditulis dalam JavaScript.

Alat-alat ini membantu Anda mengelola interaksi antara HTML, CSS, dan JavaScript sesuai dengan aturan mereka sendiri. Setelah alat menjadi sangat besar, alat itu mungkin menggunakan nama seperti "perpustakaan" atau "kerangka kerja" bergantung pada karakteristiknya.

Kami sering menjalankan JavaScript di browser web. Namun beberapa tahun yang lalu, muncul hal yang disebut Node.js yang memungkinkan kami menjalankan JavaScript dengan mudah di luar browser. Saya suka menganggapnya sebagai "program yang menjalankan JavaScript di luar browser" (yang berarti ... tidak ada HTML atau CSS untuk dilihat).

therobinkim
sumber