Angular fonctionne avec une architecture modulaire. Cela signifie que le framework est
découpé en plusieurs modules, chaque module regroupant des fonctionnalités spécifiques. Par
exemple, les formulaires sont regroupés dans FormsModule, les directives courantes comme
ngClass et ngStyle sont regroupées dans CommonModule, et la navigation entre pages est
gérée par RouterModule. Ces modules ne sont pas des librairies externes : ils font déjà partie
du framework Angular. Lorsque Angular est installé, tous ces modules sont déjà disponibles
dans le projet.
Cependant, Angular ne charge pas automatiquement toutes ses fonctionnalités. Le
développeur doit importer uniquement les modules dont il a besoin. Cette approche permet
d’optimiser les performances de l’application et d’éviter de charger du code inutile. Par
exemple, si une application ne contient aucun formulaire, il serait inutile de charger les
fonctionnalités liées aux formulaires. C’est pour cela que, pour utiliser ngModel, il faut
importer FormsModule, et pour utiliser ngClass ou ngStyle, il faut importer CommonModule.
Prenons un exemple concret avec ngModel. Cette directive permet de lier automatiquement
un champ de saisie à une variable TypeScript. Comme cette fonctionnalité appartient au
système de formulaires Angular, elle est placée dans FormsModule. Si le développeur oublie
d’importer ce module, Angular ne reconnaît pas ngModel et affiche une erreur. Ce
fonctionnement montre qu’Angular est organisé comme une boîte à outils : toutes les
fonctionnalités existent déjà dans le framework, mais le développeur choisit uniquement les
outils nécessaires à son application.
Cette architecture modulaire est très importante dans les projets professionnels, car elle rend
les applications plus propres, mieux organisées, plus performantes et plus faciles à maintenir.
Dans React, la philosophie est différente. React est principalement une librairie d’interface
utilisateur. Il ne fournit pas directement certaines fonctionnalités importantes comme le
routing, les formulaires avancés ou la gestion globale des données. Le développeur doit
installer lui-même des librairies externes selon les besoins du projet. Par exemple, pour la
navigation, on installe souvent react-router-dom, pour les formulaires on utilise parfois react-
hook-form ou formik, et pour les requêtes HTTP on ajoute souvent axios. Contrairement à
Angular, ces outils ne font pas partie du cœur de React.
La différence importante est donc la suivante : dans Angular, les modules comme
FormsModule sont déjà intégrés au framework mais doivent être activés par import pour
optimiser l’application. Dans React, beaucoup de fonctionnalités doivent être ajoutées depuis
des librairies externes téléchargées séparément. Angular fournit déjà la boîte à outils
complète, tandis que React fournit surtout la partie interface utilisateur et laisse le
développeur construire le reste de l’écosystème autour du projet.
C’est pour cette raison qu’Angular est considéré comme un framework complet, alors que
React est considéré comme une librairie UI flexible.