1. Modul Pemuatan Malas
const routes: Routes = [{ path: 'feature', loadChildren: () => import('./feature/feature.module').then(m => m.FeatureModule) }];
![]() |
sumber: codesandbox.io |
2. Gunakan Strategi Deteksi Perubahan OnPush
@Component({selector: 'app-example',templateUrl: './example.component.html',changeDetection: ChangeDetectionStrategy.OnPush})export class ExampleComponent {@Input() data: any;}
Dengan menggunakan ChangeDetectionStrategy.OnPush, Angular memeriksa perubahan hanya ketika referensi input berubah, yang mengarah pada peningkatan kinerja yang signifikan.
3. Pengocokan Pohon untuk Optimalisasi Ukuran Bundle
ng build --prod
Perintah ini memungkinkan kompilasi Ahead-of-Time (AOT) dan pengocokan pohon, sehingga menghasilkan bundel yang lebih kecil dan dioptimalkan.
4. Mengaktifkan Kompilasi Sebelum Waktu (AOT)
AOT menerjemahkan templat Angular menjadi kode JavaScript pada saat pembuatan, yang mengurangi overhead waktu proses. Ini meningkatkan kinerja dengan menghilangkan kebutuhan akan kompiler Just-in-Time (JIT) dalam produksi → AOT.
Untuk mengaktifkan kompilasi AOT, gunakan perintah berikut:
ng build --aot
AOT meningkatkan waktu muat dan meningkatkan keamanan aplikasi dengan mendeteksi kesalahan template selama waktu pembuatan, bukan pada saat runtime.
5. Mengoptimalkan Gambar dan Aset
Aplikasi Angular melambat karena gambar dan aset yang besar. Anda dapat menggunakan gambar yang dioptimalkan dan memanfaatkan format modern seperti WebP. Uji gambar yang mendukung CDN untuk latensi yang lebih rendah.
Contoh penggunaan WebP dalam HTML:
<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="Optimized Image">
</picture>
Pendekatan ini memastikan browser modern menggunakan WebP sementara browser lama kembali ke JPEG.
6. Memanfaatkan Angular Universal untuk Server-Side Rendering (SSR)
Angular Universal melakukan pra-render halaman di server sebelum menayangkannya ke klien, sehingga meningkatkan kinerja secara signifikan, terutama untuk pemuatan halaman awal dan SEO.
Untuk menambahkan Angular Universal:
ng add @nguniversal/express-engine
Hal ini meningkatkan performa yang dirasakan dengan menyampaikan konten yang sudah dirender dengan cepat.
7. Mengurangi Ketergantungan Pihak Ketiga
Ukuran paket aplikasi juga dapat meningkat karena pustaka pihak ketiga yang tidak perlu. Bangun kebiasaan untuk mengaudit ketergantungan secara teratur dan hapus paket yang tidak digunakan:
npm prune
Selain itu, lebih memilih alternatif yang ringan atau solusi Angular asli untuk fungsi umum.
8. Gunakan Web Workers untuk Komputasi Berat
Web Workers memungkinkan Anda untuk membebani komputasi yang berat sehingga Anda tidak akan membekukan antarmuka DOM.
Membuat Pekerja Web:
ng generate web-worker worker
Pindahkan tugas-tugas yang intensif secara komputasi kepada pekerja untuk menjaga daya tanggap.
9. Optimalkan Permintaan HTTP dengan Caching
Menerapkan Strategi Caching Untuk Mengurangi Panggilan API yang Berlebihan Salah satu fitur yang sangat kuat ini adalah caching respons HTTP yang diberikan oleh HttpInterceptor dari Angular.
Contoh interceptor:
@Injectable()
export class CacheInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const cachedResponse = localStorage.getItem(req.url);
return cachedResponse ? of(JSON.parse(cachedResponse)) : next.handle(req).pipe(
tap(response => localStorage.setItem(req.url, JSON.stringify(response)))
);
}
}
Ini meningkatkan efisiensi dengan menghilangkan panggilan jaringan duplikat.
Kesimpulan
Mengoptimalkan kinerja di Angular SPA sangat penting untuk memberikan pengalaman pengguna yang cepat dan lancar. Dengan menerapkan strategi seperti lazy loading, kompilasi AOT, pengoptimalan deteksi perubahan, dan cache HTTP, pengembang dapat secara signifikan meningkatkan efisiensi aplikasi mereka. Audit rutin dan pembuatan profil kinerja memastikan bahwa aplikasi tetap dioptimalkan seiring dengan peningkatan skala. Dengan mengadopsi praktik terbaik ini, pengembang Angular dapat membangun SPA yang berkinerja tinggi dan responsif.
Kembali ke>>>> Membangun Aplikasi Halaman Tunggal (SPA) dengan Angular