Il existe de nombreuses options différentes pour développer une application web. Deux frameworks JavaScript en particulier ont la faveur des développeurs : React.JS et Angular.JS.
Si ces deux frameworks sont tous les deux très bons, l’un ou l’autre peut être davantage adapté à votre projet. L’objectif de cet article n’est donc pas de déterminer un gagnant ou un perdant, mais plutôt de vous fournir suffisamment de clefs pour vous orienter vers un choix avisé, que vous soyez développeur Javascript ou même client.
Angular et React proposent des approches complètement différentes :
Angular étant un framework, vous trouverez de nombreuses solutions Angular « sur étagères » quasiment prêtes à l’emploi qui ne nécessitent quasiment que du paramétrage. C’est un excellent choix pour développer des applications web avec beaucoup d’interactions.
La toute première version qui se nommait AngularJS a été totalement réécrite dès la v2 du framework pour adopter une démarche orientée composants et pour pouvoir utiliser du Typescript.
Angular permet de créer des composants en JavaScript en adoptant une démarche modulaire. Il est en effet possible de « bootstrapper » les modules d’une application en se basant sur du Webpack et surtout sur l’utilisation d’observables. La maîtrise des observables est donc importante pour tous les développeurs souhaitant se spécialiser dans le développement Angular.
Angular est par ailleurs particulièrement apprécié des développeurs pour son outil « CLI » puissant et scalable qui permet la génération de skeletons d’applications, des classes, services et composants depuis son terminal.
React est très différent d’Angular puisque ce n’est pas un framework au sens propre du terme. En effet, il s’agit d’une bibliothèque créée et éditée par Facebook et qui s’appuie sur une importante communauté « Open Source ».
React JS est aussi orienté composants, mais moins packagé qu’Angular. Il laisse donc beaucoup plus de liberté et donne donc la possibilité de développer en JavaScript (classique ou ES6 avec le support babel) ou avec TypeScript. Certains développeurs utilisent le module leader choisi grâce à la flexibilité du fonctionnement de React JS.
La principale différence entre Angular et React JS concerne la gestion d’état. En effet, Angular possède un couplage de données bidirectionnel qui est intégré par défaut, tandis que React JS a souvent besoin d’être augmenté via Redux afin de créer un flux de données qui peuvent être immuables. Les deux approches sont diamétralement opposées, sans que l’on puisse trouver de consensus sur ce qui est réellement préférable. Pour autant il est clairement nécessaire d’être plus sénior pour développer correctement, c’est pourquoi il est souvent préférable de faire appel à une agence react spécialisée qu’à des freelances.