Podcast Title

Author Name

0:00
0:00
Album Art
root@10xdev:~$
Type commands: ls ebooks | ls roadmaps | ls podcasts | ls apps | ls posts | ls telegram | help | clear
user@10xdev:~$ welcome to 10xdev.blog
user@10xdev:~$

🧠 Comprendre le Server-Side Rendering (SSR) dans Angular 20 : SSR vs CSR vs PrĂ©-rendu

By 10xdev team June 18, 2025
Listen

Angular version 20 vient tout juste d'ĂȘtre publiĂ©e, et aujourd'hui nous allons parler d’un sujet trĂšs demandĂ© par la communautĂ© : le Server-Side Rendering (SSR), l’hydratation, et comment ces concepts s’intĂšgrent dans Angular.
J’aime particuliĂšrement l’hydratation incrĂ©mentale dans Angular, et nous y reviendrons en dĂ©tail.
Il s’agit ici de la premiĂšre partie d’une sĂ©rie en plusieurs articles. Nous commencerons par comprendre ce qu’est le SSR.


đŸ€” Qu’est-ce que le Server-Side Rendering (SSR) ?

Lorsque nous parlons de Server-Side Rendering, cela signifie que l’on gĂ©nĂšre le HTML entiĂšrement rendu cĂŽtĂ© serveur, Ă  la demande.

💡 Le mot clĂ© ici est “à la demande” – cela signifie que chaque fois qu’un utilisateur accĂšde Ă  une route spĂ©cifique, le serveur exĂ©cute un processus de rendu complet et retourne le HTML dĂ©jĂ  construit au navigateur.

Cela implique une charge supplĂ©mentaire sur le serveur, car chaque requĂȘte dĂ©clenche un nouveau rendu. C’est donc idĂ©al pour les pages dynamiques : par exemple, lorsque vous devez rĂ©cupĂ©rer des donnĂ©es depuis une base de donnĂ©es, les intĂ©grer dans le template, et envoyer le rĂ©sultat au client.

✅ Avantages du SSR :

  • Affichage immĂ©diat du contenu : pas d’écran blanc ou de loader.
  • Meilleure expĂ©rience utilisateur : le contenu arrive dĂ©jĂ  formĂ©.
  • SEO amĂ©liorĂ© : les moteurs de recherche indexent facilement le contenu rendu.
  • Gestion prĂ©visible des appels API : les requĂȘtes peuvent ĂȘtre effectuĂ©es directement sur le serveur.

🔁 CSR vs SSR : Une question de contexte

Avec le Client-Side Rendering (CSR), le serveur renvoie uniquement un shell HTML accompagnĂ© du bundle JavaScript. Ce n’est qu’ensuite, cĂŽtĂ© client, que l’application Angular prend le relais pour afficher le contenu rĂ©el.

Le CSR excelle dans les applications monopages (SPA), surtout lors des navigations suivantes. Une fois la page initiale chargée, Angular peut charger les routes suivantes de maniÚre asynchrone, offrant une navigation fluide sans rechargement complet.

En revanche, le SSR brille dÚs la premiÚre visite : le contenu est immédiatement visible, ce qui améliore le First Contentful Paint (FCP) et le Largest Contentful Paint (LCP).


⚙ CrĂ©er une application Angular 20 avec SSR

Pour créer une nouvelle application Angular avec SSR activé :

ng new ngv20-demo-app --ssr

Choisissez CSS comme style et dĂ©sactivez Zoneless mode pour l’instant.

Ce projet inclut automatiquement tous les fichiers nĂ©cessaires Ă  l’exĂ©cution du SSR via Express.js : - src/main.server.ts - src/server.ts - src/app.routes.ts

AprÚs avoir généré le projet, lancez-le en mode développement :

ng build
npm run serve:ssr

Votre application sera accessible à l’adresse http://localhost:4000.


📂 Structure du projet Angular SSR

Dans votre dossier dist/, vous trouverez deux sous-dossiers : - browser/ : contient les fichiers statiques (HTML, JS, CSS) - server/ : contient le bundle serveur (main.js, server.mjs, etc.)

Le fichier server.ts configure le serveur Express et utilise le package @angular/ssr/node pour rendre l’application cĂŽtĂ© serveur.


đŸ§Ș Tester les diffĂ©rents modes de rendu

Angular v20 permet de configurer facilement le mode de rendu dans le fichier app.routes.ts. Les options sont : - 'client' : rendu uniquement cĂŽtĂ© client - 'server' : rendu cĂŽtĂ© serveur Ă  chaque requĂȘte - 'prerender' : rendu statique fait Ă  la compilation

Exemple :

{
  path: '',
  component: AppComponent,
  data: { renderMode: 'server' }
}

Ajouter un log dans AppComponent

Ajoutez un log dans ngOnInit pour observer oĂč le composant est initialisĂ© :

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
  ngOnInit() {
    console.log('App initialized');
  }
}

🔍 VĂ©rifier le type de rendu

Utilisez "View Page Source" dans votre navigateur pour voir si le HTML provient du serveur ou non.

En mode CSR :

  • Vous verrez uniquement un shell HTML (<app-root>).
  • Tout le contenu est gĂ©nĂ©rĂ© cĂŽtĂ© client aprĂšs le chargement de JavaScript.

En mode SSR :

  • Le code source affiche le contenu entiĂšrement rendu.
  • Un log apparaĂźt Ă  chaque rafraĂźchissement dans le terminal du serveur.

En mode Pré-rendu :

  • Le contenu est Ă©galement visible dans la source.
  • Mais le log ne s’affiche qu’une seule fois : pendant la compilation (ng build).

đŸ› ïž Hydratation incrĂ©mentale dans Angular v20

Une nouveautĂ© importante dans Angular v20 est l’hydratation incrĂ©mentale.

🔍 Angular v20 Note : L’hydratation incrĂ©mentale permet de rendre certaines parties de l’application interactives plus rapidement, sans attendre que toute l’application soit prĂȘte.

Au lieu d’hydrater l’application entiĂšre d’un coup, Angular peut dĂ©sormais hydrater progressivement les composants visibles, amĂ©liorant ainsi les performances perçues.


🎯 Comment choisir entre SSR, CSR et PrĂ©-rendu ?

| Cas d’utilisation | Mode recommandĂ© | |-------------------|------------------| | Pages dynamiques (blog, produits, profils) | SSR | | Tableaux de bord internes | CSR | | Pages statiques (mentions lĂ©gales, FAQ) | PrĂ©-rendu | | Sites avec millions de visiteurs | CSR ou PrĂ©-rendu (moins coĂ»teux pour le serveur) |


📘 Prochain article : DĂ©ferrement avec defer blocks

Dans le prochain Ă©pisode de cette sĂ©rie, nous explorerons les blocs diffĂ©rĂ©s (defer blocks), une fonctionnalitĂ© puissante d’Angular qui permet de charger certains composants uniquement quand ils sont nĂ©cessaires.
Nous verrons comment cela fonctionne avec le SSR et comment cela améliore les temps de chargement initiaux.


💬 Conclusion

Comprendre les diffĂ©rentes stratĂ©gies de rendu dans Angular vous donne la libertĂ© de faire des choix Ă©clairĂ©s concernant les performances, le rĂ©fĂ©rencement et l’expĂ©rience utilisateur.

Avec Angular v20, le SSR est plus accessible que jamais. Il n’y a donc aucune raison de ne pas l’utiliser pour les applications publics oĂč le SEO est essentiel.

Restez connecté pour la suite de cette série !

Join the 10xdev Community

Subscribe and get 8+ free PDFs that contain detailed roadmaps with recommended learning periods for each programming language or field, along with links to free resources such as books, YouTube tutorials, and courses with certificates.

Recommended For You

Up Next