Reactive forms define custom validators as functions that receive a control to validate.
Reactive forms provide a relatively easy testing strategy because they provide synchronous access to the form and data models, and they can be tested without rendering the UI.
Reactive forms provide access to low-level APIs and synchronous access to the form model, making creating large-scale forms easier.
Reactive forms keep the data model pure by providing it as an immutable data structure.
Reactive forms provide a model-driven approach to handling form inputs whose values change over time.