Apa itu AngularJS? Archikuliah, Fitur & Keunggulan

โšก Ringkasan Cerdas

Pengenalan, arsitektur, dan fitur AngularJS dijelaskan di sini untuk pemula, mencakup desain Model-View-Whatever, pengikatan data dua arah, direktif, aplikasi pertama yang dapat dijalankan, dan berakhirnya dukungan jangka panjang pada Desember 2021 yang harus diketahui setiap tim.

  • ๐Ÿงฉ Definisi: AngularJS adalah perangkat lunak sumber terbuka. JavaKerangka kerja skrip dari Google untuk membangun aplikasi satu halaman.
  • ๏ธ Architekstur: Kerangka kerja ini membagi aplikasi menjadi lapisan Model, View, dan Controller, yang oleh tim pengembangnya sendiri disebut Model-View-Whatever.
  • ๐Ÿ”— Pengikatan Data: Two-way binding menjaga model dan tampilan tetap sinkron tanpa kode pembaruan DOM manual.
  • ๏ธ Arahan: Penanda khusus seperti ng-app, ng-model, dan ng-bind memperluas HTML biasa dengan perilaku aplikasi.
  • โš™๏ธ Permohonan Pertama: Satu tag skrip ditambah ng-app dan ng-controller menghasilkan halaman sambutan yang berfungsi dalam hitungan menit.
  • โš ๏ธ Akhir Hidup: Google Dukungan jangka panjang berakhir pada 31 Desember 2021, sehingga tidak akan ada lagi pembaruan keamanan yang diberikan.
  • ๐Ÿ”„ Migrasi: Proyek baru sebaiknya menargetkan Angular modern, sedangkan aplikasi AngularJS lama memerlukan jalur peningkatan yang terencana.

Apa itu AngularJS?

Apa itu AngularJS?

AngularJS adalah kerangka kerja Model-View-Controller sumber terbuka yang ditulis dalam JavaNaskahAngularJS adalah salah satu framework web paling populer di tahun 2010-an, dan digunakan untuk pengembangan.ping Sebagian besar berupa aplikasi Single Page. Kerangka kerja ini telah dikembangkan oleh sekelompok pengembang dari Google itu sendiri.

Karena dukungan yang luar biasa dari Google Berkat ide-ide dari berbagai forum komunitas, kerangka kerja ini terus diperbarui sepanjang masa aktifnya. Kerangka kerja ini juga menggabungkan tren pengembangan terkemuka pada periode tersebut, itulah sebabnya mengapa begitu banyak kode produksi masih berjalan di atasnya hingga saat ini.

โš ๏ธ Penting: AngularJS telah mencapai akhir masa pakainya. Google AngularJS 1.x dimasukkan ke dalam masa dukungan jangka panjang (Long Term Support/LTS) selama tiga tahun pada tanggal 1 Juli 2018 dan diperpanjang selama enam bulan karena COVID-19. Dukungan tersebut berakhir pada tanggal tersebut. 31 Desember 2021Versi 1.8.3 adalah rilis terakhir, dan Google Tidak ada perbaikan bug atau patch keamanan lebih lanjut untuknya. Pelajari AngularJS untuk memelihara sistem yang ada, dan pilih yang modern. Kaku untuk hal baru apa pun.

Ada satu poin terminologi yang perlu diselesaikan sejak awal. AngularJS secara luas digambarkan sebagai kerangka kerja MVC, yang merupakan titik awal yang berguna. Namun, tim AngularJS sendiri lebih menyukai label tersebut. MVW (Model-View-Whatever), karena runtime berperilaku lebih mirip Model-View-ViewModel daripada MVC klasik. (Referensi resmi) Dokumentasi AngularJS Ia menyebutnya sebagai kerangka struktural untuk aplikasi web dinamis. Setelah itu, berikut adalah bagaimana bagian-bagian tersebut saling terhubung.

AngularJS Architekstur

AngularJS mengikuti arsitektur MVC. Diagram kerangka kerja MVC ditunjukkan di bawah ini:

AngularJS Architekstur

AngularJS Archidiagram tekstur

Masing-masing dari ketiga lapisan tersebut memiliki tugas yang jelas:

  • Controller mewakili lapisan yang memiliki logika bisnis. Peristiwa pengguna memicu fungsi yang disimpan di dalam pengontrol Anda. Peristiwa pengguna adalah bagian dari pengontrol.
  • View digunakan untuk merepresentasikan lapisan presentasi yang diberikan kepada pengguna akhir.
  • Model digunakan untuk merepresentasikan data Anda. Data dalam model Anda dapat sesederhana memiliki deklarasi primitif. Misalnya, jika Anda mengelola aplikasi siswa, model data Anda dapat hanya memiliki id dan nama siswa. Atau dapat juga menjadi rumit dengan memiliki model data terstruktur. Jika Anda mengelola aplikasi kepemilikan mobil, Anda dapat memiliki struktur untuk menentukan kendaraan itu sendiri dalam hal kapasitas mesin, kapasitas tempat duduk, dll.

Dalam praktiknya, controller jarang sekali memasukkan data ke dalam view secara manual. AngularJS memantau model dan memperbarui view untuk Anda, dan sinkronisasi otomatis tersebut didukung oleh fitur-fitur yang akan dijelaskan selanjutnya.

Fitur AngularJS

AngularJS memiliki fitur-fitur utama berikut yang menjadikannya salah satu framework terkuat di pasaran:

  1. MVC โ€“ Kerangka kerja ini dibangun berdasarkan konsep terkenal MVC (Pengontrol Tampilan Model). Ini adalah pola desain yang digunakan di semua aplikasi web modern. Pola ini didasarkan pada pemisahan lapisan logika bisnis, lapisan data, dan lapisan presentasi menjadi beberapa bagian terpisah. Pembagian menjadi beberapa bagian dilakukan agar masing-masing bagian dapat dikelola dengan lebih mudah.
  2. Pengikatan Model Data โ€“ Anda tidak perlu menulis kode khusus untuk mengikat data ke kontrol HTML. Ini dapat dilakukan oleh AngularJS hanya dengan menambahkan beberapa cuplikan kode.
  3. Menulis lebih sedikit kode โ€“ Saat melakukan manipulasi DOM banyak JavaNaskah Dahulu, dibutuhkan penulisan kode untuk mendesain aplikasi apa pun. Namun dengan AngularJS, Anda akan kagum dengan jumlah kode yang lebih sedikit yang perlu Anda tulis untuk manipulasi DOM.
  4. Satuan pengujian siap โ€“ Para desainer di Google Tidak hanya mengembangkan AngularJS, tetapi juga mengembangkan kerangka kerja pengujian yang disebut "Karma" yang membantu dalam mendesain pengujian unit untuk aplikasi AngularJS.
  5. Direktif โ€“ Penanda seperti ng-aplikasi, ng-model dan ng-ulangi menambahkan perilaku pada elemen HTML biasa.

Fitur-fitur ini paling mudah dipahami setelah Anda menjalankannya, jadi bagian selanjutnya akan membangun halaman yang berfungsi dari awal.

Cara Mengatur AngularJS dan Membangun Aplikasi Pertama Anda

Membaca tentang data binding adalah satu hal, dan melihat cara kerjanya adalah hal lain. AngularJS tidak memerlukan package manager, bundler, atau compiler, jadi aplikasi pertama Anda hanyalah sebuah file HTML tunggal yang berjalan langsung dari hard disk Anda.

Langkah 1) Tambahkan pustaka AngularJS

Muat pustaka dari CDN dengan satu tag skrip. Versi 1.8.3 adalah rilis AngularJS terakhir, jadi tetapkan halaman Anda ke versi tersebut dan jangan ke versi yang berubah-ubah.

Langkah 2) Tandai direktori root aplikasi dengan ng-app

Direktif ng-app memberi tahu kompiler AngularJS bagian halaman mana yang menjadi tanggung jawabnya. Dengan meletakkannya pada tag html, seluruh dokumen diserahkan ke framework, dan nilai yang Anda berikan akan memberi nama modul yang akan Anda buat.

Langkah 3) Mengikat data dengan ng-model dan sebuah ekspresi

Direktif ng-model mengikat elemen input ke properti pada scope, dan ekspresi kurung kurawal ganda mencetak properti yang sama di tempat lain pada halaman. Karena pengikatan bersifat dua arah, typing Di dalam kotak, judul diperbarui secara instan, tanpa perlu penanganan peristiwa (event handler) sendiri.

Langkah 4) Tambahkan pengontrol untuk logika

Pengontrol adalah perangkat biasa. JavaFungsi skrip yang menerima objek $scope dan menetapkan nilai awal padanya. Mendaftarkannya pada modul membuatnya tersedia untuk direktif ng-controller.

<!DOCTYPE html>
<html ng-app="helloApp">
<head>
  <meta charset="UTF-8">
  <title>AngularJS Hello World</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.3/angular.min.js"></script>
</head>
<body>

  <div ng-controller="GreetController">
    <input type="text" ng-model="name" placeholder="Enter your name">
    <h3>Hello {{ name }}!</h3>
  </div>

  <script>
    // Step 1: create the module named in ng-app
    angular.module("helloApp", [])
      // Step 2: register a controller on that module
      .controller("GreetController", function ($scope) {
        $scope.name = "World";
      });
  </script>
</body>
</html>

Langkah 5) Jalankan halaman dan periksa hasilnya

Simpan file tersebut sebagai index.html dan buka di browser apa pun. Judul awalnya berbunyi โ€œHello World!โ€, dan akan berubah setiap kali tombol ditekan. Tidak ada server web dan tidak ada langkah pembuatan yang terlibat.

Jika tidak ada yang muncul, buka konsol browser dan pastikan skrip CDN telah dimuat dan nama modul di dalam ng-app sama persis dengan nama yang diteruskan ke angular.module, karena ketidakcocokan akan menyebabkan kegagalan tanpa pemberitahuan. Halaman kecil itu sudah menunjukkan keunggulan yang akan dijelaskan selanjutnya.

Keunggulan AngularJS

Berikut kelebihan AngularJS:

  • Karena ini adalah kerangka kerja sumber terbuka, Anda dapat mengharapkan jumlah kesalahan atau masalah yang minimal.
  • Pengikatan dua arah โ€“ AngularJS menjaga lapisan data dan presentasi tetap sinkron. Anda tidak perlu menulis kode tambahan. JavaKode skrip untuk menjaga agar data dalam kode HTML dan lapisan data Anda tetap sinkron. AngularJS akan secara otomatis melakukan ini untuk Anda. Anda hanya perlu menentukan kontrol mana yang terikat ke bagian mana dari model Anda.
  • Routing โ€“ AngularJS dapat menangani routing, yang berarti berpindah dari satu tampilan ke tampilan lain. Ini adalah dasar utama dari aplikasi satu halaman (single page application); di mana Anda dapat berpindah ke berbagai fungsi dalam aplikasi web Anda berdasarkan interaksi pengguna tetapi tetap berada di halaman yang sama.
  • AngularJS mendukung pengujian, baik Pengujian Unit, dan Tes integrasi.
  • AngularJS memperluas HTML dengan menyediakan elemen-elemennya sendiri yang disebut direktif. Secara garis besar, direktif adalah penanda pada elemen DOM (seperti atribut, nama elemen, dan komentar atau kelas CSS) yang memberi tahu kompiler HTML AngularJS untuk melampirkan perilaku tertentu pada elemen DOM tersebut. Direktif ini membantu memperluas fungsionalitas elemen HTML yang ada untuk memberikan lebih banyak kekuatan pada aplikasi web Anda.

Keunggulan AngularJS

Kelebihan AngularJS

Pandangan yang seimbang sama pentingnya, jadi pertimbangan-pertimbangan yang perlu diperhatikan akan dijelaskan selanjutnya.

Kekurangan dan Keterbatasan AngularJS

Setiap framework pasti mengorbankan sesuatu, dan AngularJS tidak terkecuali. Berikut adalah keterbatasan yang paling sering dilaporkan oleh tim yang memelihara aplikasi AngularJS:

  • Tidak memiliki lapisan keamanan sendiri. โ€“ AngularJS tidak menyediakan otentikasi maupun otorisasi, sehingga keduanya harus diterapkan di sisi server.
  • Ketergantungan total pada JavaNaskah โ€“ Jika pengunjung menonaktifkan JavaJika menggunakan skrip, halaman akan kembali ke markup biasa dan tidak akan ditampilkan.
  • Kinerja siklus pencernaan โ€“ Perubahan dideteksi dengan membandingkan nilai yang dipantau secara berulang, sehingga halaman dengan beberapa ribu jilid mungkin terasa lambat.
  • Kurva pembelajaran yang curam โ€“ Lingkup, arahan, pabrik, layanan, dan penyedia saling tumpang tindih, dan seringkali ada beberapa cara untuk mencapai hasil yang sama.
  • Visibilitas mesin pencari โ€“ Tampilan dirakit di browser, jadi diperlukan pekerjaan tambahan seperti pra-rendering sebelum crawler dapat mengindeks halaman dengan andal.
  • Tidak ada pembaruan lebih lanjut. โ€“ Sejak 31 Desember 2021 belum ada patch resmi, sehingga kerentanan yang baru ditemukan tetap tidak diperbaiki kecuali jika vendor komersial menyediakan perbaikan.

Poin terakhir itu mendorong sebagian besar tim untuk beralih ke kerangka kerja penerus, yang merupakan produk berbeda meskipun memiliki nama yang sama.

AngularJS vs Angular: Apa Perbedaannya?

AngularJS dan Angular seringkali membingungkan karena namanya sangat mirip, tetapi keduanya adalah framework terpisah dengan bahasa, arsitektur, dan lini rilis yang berbeda. AngularJS hanya merujuk pada seri 1.x yang dijelaskan di halaman ini. Angular berarti versi 2 dan setiap versi setelahnya, penulisan ulang lengkap yang dirilis pada tahun 2016 dan masih aktif dikembangkan. Code tidak berpindah di antara keduanya tanpa upaya migrasi yang disengaja.

Dasar perbandingan AngularJS (1.x) Angular (2 dan versi yang lebih baru)
Bahasa JavaNaskah TypeScript
Blok bangunan Pengontrol dan $scope Komponen dan kelas
Architekstur MVC / MVW Berbasis komponen
Dukungan seluler Tidak dirancang untuk perangkat seluler. Dukungan seluler terintegrasi
Injeksi ketergantungan Berbasis string, beberapa sintaksis Hierarkis, berdasarkan tipe
Alat baris perintah Tidak ada yang disediakan CLI sudut
Status dukungan Berakhir 31 Desember 2021 Dipelihara secara aktif

Konsekuensi praktisnya adalah bahwa controller AngularJS tidak bisa begitu saja dimasukkan ke dalam proyek Angular. Migrasi berarti menulis ulang setiap controller sebagai komponen, jadi rencanakan ini sebagai pekerjaan rekayasa yang sebenarnya, bukan sekadar peningkatan. Singkatnya, perlakukan AngularJS sebagai keterampilan pemeliharaan dan Angular sebagai platform untuk pengembangan baru.

Pertanyaan Umum Demo Slot

Google tidak menyediakan apa pun lebih lanjut. Dukungan tambahan komersial dijual oleh vendor seperti... Pengembang Pahlawan, yang mengirimkan patch keamanan untuk organisasi yang tidak dapat bermigrasi segera. Semua yang lain harus mengandalkan perbaikan mereka sendiri.

Ya, untuk bagian-bagian yang berulang. Asisten seperti... Kopilot GitHub Konversikan controller menjadi komponen dan $scope menjadi properti kelas dengan cepat. ArchiKeputusan arsitektur, perutean, dan desain status masih memerlukan peninjau manusia.

Pengujian unit biasanya dijalankan pada Karma dengan Melati untuk pernyataan. Keduanya dibangun bersamaan dengan AngularJS, dan modul ngMock menyediakan layanan palsu sehingga controller dapat diuji secara terpisah.

Biasanya ya, karena AngularJS banyak digunakan dalam data pelatihan. Kegagalan yang umum terjadi adalah perbedaan versi: model sering kali menjawab dengan sintaks Angular modern. Nyatakan versi 1.x secara eksplisit dalam perintah Anda dan verifikasi setiap cuplikan kode yang dihasilkan.

AngularJS 1.8.3 adalah rilis terakhir yang diterbitkan oleh GoogleTutorial apa pun yang merujuk pada versi 1.2 atau 1.6 sudah usang, jadi kaitkan pekerjaan baru ke versi 1.8.3 dan baca panduan resmi. status dukungan versi .

Ringkaslah postingan ini dengan: