> For the complete documentation index, see [llms.txt](https://guide-angular.wishtack.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide-angular.wishtack.io/angular/formulaires.md).

# Formulaires

Il existe différentes façon d'implémenter les formulaires avec Angular.

Ce guide aborde **les deux approches les plus répandues** :

* [**Template-driven Forms**](/angular/formulaires/template-driven-forms.md) ***(à éviter)*** : inspirée du "two-way binding" utilisé dans AngularJS, cette approche a de nombreuses limitations et s'avère rapidement **fastidieuse à implémenter**, **peu extensible** et **peu efficace**.<br>
* [**Reactive Forms**](/angular/formulaires/reactive-forms.md) ***(à adopter)*** : cette approche vient appuyer le paradigme "Reactive Programming" qui fait parti des fondements d'Angular avec : une meilleure **séparation de la logique du formulaire et de la vue**,  une **meilleure testabilité**, des `Observable`s, la **génération dynamique de formulaires** etc...

{% hint style="danger" %}
Il existe d'autres approches telles que celle décrite dans la documentation officielle <https://angular.io/guide/user-input> qu'il faut absolument éviter pour les raisons suivantes :

* **Couplage fort avec le DOM** et le "low level" en général.
* Ce sont des approches impératives qui ne respectent pas l'approche "Reactive" d'Angular *(Cf.* [*Violations du MVC Angular*](/angular/composants/lapproche-mvc.md#violations-du-mvc-angular)*)*.
  {% endhint %}
