Since Angular's ReactiveFormsModule makes it possible to build feature-rich forms that can handle complex dynamic and static forms, it's best to use this module for most large forms. In the ReactiveFormsModule, we create the model using code, and in the template-driven approach, it gets created for us by use of NgModel and NgForm directives. Whichever approach is chosen, a form model does get created consisting of FormGroup, FormArray, and FormControl.
Angular offers validations that can be processed in a synchronous and asynchronous manner. At first, the Angular forms can seem daunting given the architectural choices to be dealt with. But it's this very set of choices offered that makes working with complex forms possible. In the next chapter, we will begin building a frontend Angular application using the knowledge gained thus far.