Angular v22 diumumkan
(blog.angular.dev)- Angular v22 memperluas alur agen AI ke alat kontrol dev server Angular MCP, Angular Agent Skills, WebMCP eksperimental, serta alur kerja pembuatan Angular di Google AI Studio dan Gemini Canvas
- Dengan tujuan meningkatkan stabilitas dan kemudahan pengembangan, Signal Forms, Angular Aria, serta
resource·httpResourcedinaikkan dari tahap eksperimen/pratinjau menjadi siap produksi - Signal Forms adalah API form deklaratif yang menggabungkan Reactive Forms, form bertipe kuat, form berbasis template, dan reaktivitas signals; dokumentasinya telah diperkuat, umpan balik komunitas telah diterapkan, dan dukungan Angular Material serta Angular Aria telah selesai
- Peningkatan API dan template mencakup integrasi Navigation API pada Router, kontrol pembersihan resource rute, dukungan
@ServicedaninjectAsync, komentar elemen HTML·spread/rest·pemeriksaan@switch·fungsi panah di template - Angular v22 memperkuat fondasi masa depan dengan menjadikan OnPush sebagai default untuk aplikasi baru, mengganti nama
ChangeDetectionStrategy.Eager, menyiapkan pratinjau pengembang@boundarypada kuartal 3 2026, serta merencanakan penghentian dukungan keluarga Webpack dan fokus pada TSGo
Fitur yang naik menjadi siap produksi
- Signal Forms adalah API form yang reaktif, dapat dikomposisikan, dan deklaratif, menggabungkan keunggulan Reactive Forms, form bertipe kuat, elemen-elemen yang disukai dari form berbasis template, dan reaktivitas signals
- Sejak rilis v21, panduan form di angular.dev telah diperbarui, umpan balik dan isu dari komunitas telah ditindaklanjuti, serta integrasi dengan Angular Material dan Angular Aria kini didukung
- Angular Aria adalah primitive aksesibilitas yang dirancang agar pengembang menangani styling dan logika bisnis, sementara direktif dan pola UI menangani aksesibilitas; pada v22 statusnya menjadi siap digunakan di produksi
- 12 pola UI Angular Aria mencakup pola aksesibilitas umum, disertai stabilisasi API, dukungan penuh untuk Signal Forms, dan test harness
- API reaktif asinkron memungkinkan
resourcemenangani resource asinkron dengan kegunaan bergaya signal, danhttpResourcemenangani pengambilan data HTTP dengan model yang lebih deklaratif resourcedanhttpResourcekini dapat digunakan pada aplikasi produksi di v22, dan cara penggunaannya dapat dilihat di panduan resmi
Pengembangan AI dan alur kerja agen
- Angular v22 memperluas alur untuk aplikasi AI-native ke tiga area: alat agen untuk menulis kode, alat agen di browser, dan platform pengembangan AI
devserver.wait_for_builddi Angular MCP membantu agen membangun aplikasi dan meninjau hasil output untuk menentukan langkah berikutnya, serta dapat membentuk loop pemulihan mandiri berdasarkan error kode di log builddevserver.startdandevserver.stopbertugas memulai dan menghentikan dev server, dan alat-alat ini bersama alat testing dan end-to-end dipromosikan menjadi stable di v22- Angular MCP terus menambah daftar alat seperti
ai_tutor,modernize, danonpush_zoneless_migrationuntuk membantu pengembangan aplikasi Angular modern angular-developerdari Angular Agent Skills memberi model panduan pengembangan Angular modern, termasuk fitur terbaru seperti Angular Aria dan Signal Forms; file-nya kurang dari 140 baris dan menggunakan pendekatan pengungkapan bertahap yang memuat contoh kode dan file referensi saat dibutuhkanangular-new-appmembantu pengguna yang baru pertama kali mengeksplorasi Angular di lingkungan agen untuk menyiapkan lingkungan coding Angular lokal; skills ini dapat digunakan di alat pengembangan AI seperti Antigravity atau lingkungan alur kerja agen- Contributor Skills membantu memahami mental model yang dibutuhkan untuk mengembangkan fitur di dalam codebase Angular, dan bermanfaat baik bagi orang yang menyiapkan pull request pertama maupun anggota tim yang berpengalaman
- WebMCP yang masih eksperimental memungkinkan pembuatan dan pemaparan alat terstruktur untuk digunakan agen di dalam browser, mengurangi kebutuhan interaksi DOM, serta mendukung definisi alat untuk seluruh aplikasi·routes·services dan pembuatan alat otomatis dinamis berbasis Signal Forms
- Dokumentasi integrasi WebMCP tersedia di angular.dev/ai/webmcp
- Google AI Studio dan Gemini Canvas membantu builder tanpa latar belakang coding tradisional untuk memulai proyek berbasis Angular, dan sandbox coding bawaan di aplikasi web Gemini memungkinkan pembuatan aplikasi penuh langsung di browser
- Dalam alur kerja Gemini, jika prompt menyebut “Angular”, aplikasi Angular akan dibuat; setelah itu, pengguna dapat mengeditnya secara manual di browser, terus berdialog dengan AI untuk menyempurnakannya, atau meminta integrasi Firebase
- Di Google AI Studio, alur kerja serupa dapat digunakan dengan memilih Angular di configuration panel lalu memulai prompt; setelah pembuatan, pengguna dapat menambahkan fitur lewat chat hingga berlanjut ke deployment
Router dan API dependency injection
- Integrasi Navigation API menyelaraskan Router dengan Navigation API native browser untuk memberikan kontrol perpindahan aplikasi dengan boilerplate yang lebih sedikit
- Router dapat secara otomatis mencegat semua navigation request, termasuk
RouterLinkdan tag anchor standar - Dengan memanfaatkan native scroll behavior, perpindahan back/forward dapat membawa pengguna ke posisi yang mereka harapkan, tanpa logika custom scroll-management dan tanpa dampak pada ukuran bundle
- Keterhubungan langsung ke native navigation lifecycle browser mempermudah penanganan global loading indicator dan pengumuman aksesibilitas yang akurat selama page transition
- Kontrol pembersihan rute menangani manajemen memori secara lebih eksplisit melalui dua fitur:
withExperimentalAutoCleanupInjectorsdandestroyDetachedRouteHandle withExperimentalAutoCleanupInjectorssecara otomatis menghancurkan dependency injector yang terhubung ke rute yang tidak lagi aktif, untuk membersihkan provider dan resource tingkat rute yang sedang idledestroyDetachedRouteHandleadalah API publik resmi untuk menghancurkan komponen di dalam detached route handle secara bersih saat menggunakanRouteReuseStrategykustom- Decorator
@Servicemenggantikan pola@Injectable({ providedIn: 'root' })untuk sebagian besar use case, sementara@Injectabletetap dapat digunakan jika dibutuhkan konfigurasi yang lebih dalam atau constructor injection injectAsyncmendukung dependency injection asinkron pada service sehingga memungkinkan code splitting dan on-demand loading, dan service harus berada dalam status auto-provided, yang ditangani oleh@Service- Dalam contoh
injectAsync, serviceReportExportertidak dimuat sampai pertama kali digunakan, dan konfigurasi prefetch sepertiprefetch: onIdlejuga dimungkinkan - Cara penggunaan dapat dilihat di dokumentasi resmi injectAsync
- Peningkatan lainnya mencakup kompatibilitas penuh dengan TypeScript 6 serta peningkatan performa pada template pipeline dan efisiensi runtime
Pengalaman menulis template dan change detection
- Komentar kini dapat digunakan pada level property dan binding di dalam elemen HTML sehingga meningkatkan keterbacaan dan kejelasan template, serta mendukung comment toggling di VS Code
- Angular secara otomatis menghapus duplikasi host directive yang cocok lebih dari sekali pada elemen yang sama
- Jika directive cocok baik di template maupun host directive, kecocokan dari template diprioritaskan, dan peta input/output dari host directive akan digabungkan
- Jika input atau output diekspos dengan beberapa nama, Angular akan memunculkan error untuk mencegah konflik penamaan
- Syntax spread/rest kini bisa digunakan di template dan dapat diterapkan pada object literal, array literal, dan function call
@switchmemungkinkan beberapa@caseberbagi output yang sama untuk mengurangi duplikasi kode- Pada blok
@switchyang menggunakan union type, penggunaan@default never;dapat memunculkan compile-time error jika masih ada nilai yang belum ditangani - Fungsi inline di dalam template dapat digunakan dalam bentuk arrow function, cocok untuk fungsi yang singkat dan sederhana, dengan syarat fungsi yang kompleks atau berjalan lama tidak diletakkan di template
- Pada aplikasi baru,
OnPushmenjadi strategi change detection default, sejalan dengan target zoneless default dan performance by default - Default lama,
ChangeDetectionStrategy.Default, kini berganti nama menjadiChangeDetectionStrategy.Eageragar perilakunya dalam change detection cycle lebih jelas
Error boundary, deprecation, dan arah ke depan
@boundaryadalah API baru untuk mengimplementasikan error boundary di dalam template Angular, yang dapat menangkap error dari blok kode yang dibungkus dan menentukan fallback content- Tujuannya adalah mengurangi masalah ketika kegagalan satu komponen merusak seluruh halaman, misalnya pada alur berisiko tinggi seperti checkout e-commerce
@boundarydijadwalkan hadir sebagai developer preview pada kuartal 3 2026- Dukungan Webpack, builder
@angular-devkit/build-angular,@ngtools/webpack, dan lainnya menjadi deprecated di v22 - Angular berfokus pada dukungan TSGo untuk application builder, dan informasi deprecation lebih lanjut dapat dilihat di Angular CHANGELOG
1 komentar
Komentar Hacker News
Saya sedang membangun aplikasi yang cukup kompleks dengan Angular v21, dan pengalamannya sangat bagus karena beban kognitif untuk membuat serta mengelola komponen, state, dan aliran data terasa rendah
Berkat signals dan signal store, semuanya jadi sangat mudah, dan saya menulis semuanya manual tanpa alat coding AI
Akhir-akhir ini saya jadi mengakui bahwa Angular sekarang benar-benar menyenangkan untuk digunakan
Memang ekosistemnya sedikit kasar, tetapi untungnya fitur bawaan yang disediakan sangat banyak
Saya berharap Angular meninggalkan kompiler unik yang sangat terikat ke
tsc, lalu beralih ke pendekatan yang lebih dapat dipasang sebagai plugin dan bisa dipakai dengan kompiler TypeScript apa punWaktu cold build untuk aplikasi dan unit test masih kurang bagus, tetapi kalau memakai coding agent, beban itu jadi sedikit tidak terlalu terasa
Saya belum pernah kesulitan mencari paket, dan sebagian besar paket juga sudah mengikuti alur signal dengan baik
Atau apakah ekosistem Angular sekarang akhirnya sudah kembali waras
Baru-baru ini saya menaikkan proyek Angular yang cukup kompleks dari v14 ke v21
Selama beberapa tahun sempat terasa seperti pengembangan Angular melambat, tetapi kalau melihat perubahan di antara versi-versi itu sekaligus, rasanya hampir seperti framework yang benar-benar baru
Angular Aria terlihat sangat bagus
Dokumentasinya lengkap bahkan untuk skenario kompleks seperti autocomplete, jadi saya tidak sabar mencobanya untuk melihat apakah ini bisa menggantikan autocomplete ramah screen reader yang dulu harus saya buat sendiri
tab/shift+tabyang jauh lebih umumBahkan tab dokumentasi mereka sendiri tepat di atas contoh itu memakai
tab/shift+tabuntuk perpindahan fokusFitur ini benar-benar sangat saya nantikan
Sejak masih eksperimental saya sudah ingin memakai signal-forms dan resources, dan setelah beralih ke signal saya merasa tidak bisa kembali lagi
Harus memakai RxJS hanya demi form benar-benar menyakitkan
Apakah ini mirip paradigma signal di game engine seperti Godot, di mana komponen bisa mengirim signal dan komponen lain berlangganan tanpa memandang kedalaman, atau apakah ini sesuatu yang sepenuhnya berbeda
Sebelum React, saya senang memakai Angular dan masa itu cukup bagus, tetapi jujur sekarang saya hampir lupa bahwa Angular itu masih ada
Ini bukan untuk memuji React, dan belakangan saya justru lebih suka pendekatan htmx
Hanya saja rasanya persaingan sekarang bergeser ke framework atau bahasa mana yang lebih baik ditangani agent, dan seberapa jauh analisis statis atau alat tingkat kompiler bisa menangkap kesalahan
Saya suka Angular karena terasa agak seperti Django
Semua yang dibutuhkan sudah termasuk, jadi mudah dipakai
Atau memakai backend yang lebih cepat dengan template dan server-side rendering, lalu menambahkan htmx, sehingga bisa mendapatkan pengalaman seperti aplikasi satu halaman tanpa kegilaan ekosistem JS yang memang sudah rusak
Berkat Angular, karier pemrograman saya terasa menyenangkan dan sama sekali tidak seperti kerja
Tidak ada yang lebih baik daripada bekerja dengan bahasa yang saya sukai, terus belajar lebih banyak, dan dibayar untuk itu
Sudah lama saya tidak memakai Angular
Sebagai orang yang memakai framework JavaScript lain seperti Vue, React, dan Svelte, saya penasaran apa yang saya lewatkan
Saya ingin tahu alasan orang memilih Angular dibanding framework besar lainnya
Terutama jika Anda tidak terlalu suka JavaScript dan pengembangan web, serta menganggap backend sebagai bagian utama
Seperti
import {signal} from "@angular/core"danimport {form} from "@angular/forms/signals", strukturnya adalahsignalberasal dari core sedangkanformberasal dari forms/signalsSepertinya ada alasan terminologi yang tidak saya pahami
Selain itu, saya antusias mencoba lagi Angular setelah 10 tahun, dan kelihatannya cukup bagus
Form berbasis signal adalah bagian dari modul Forms, jadi kalau Anda tidak memakai form, Anda tidak perlu membawa overhead itu
Kemungkinan itu adalah import untuk form berbasis signal yang baru