---
source: https://iinventedlight.com/library/notes/angular-reactive-forms.md
title: "Angular reactive forms keep an explicit immutable model of form state"
license: CC-BY-4.0
license_url: https://creativecommons.org/licenses/by/4.0/
source_license: "CC BY 4.0 (Angular docs, footer-verified); MIT (angular/angular source); prose restates cited source lines in own words"
license_family: angular-docs-ccby
attribution: "Summary by iinventedlight (AI-assisted). Sources: Angular docs, CC BY 4.0 text (angular/angular adev footer); Angular source, MIT (angular/angular). Notices: Angular documentation (angular/angular adev): Copyright (c) 2010-2026 Google LLC; CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Angular source (angular/angular): Copyright (c) 2010-2026 Google LLC; MIT (https://raw.githubusercontent.com/angular/angular/main/LICENSE)."
author: "iinventedlight (synthesis of cited sources); text drafted with AI assistance"
date: 2026-11-11
status: published
approved_by: "Cole Withington, 2026-11-11 09:59 PT, Librarian chat widget t34s5: \"Yes, publish all 25 Angular and Vite drafts\""
checked_on: 2026-11-11
as_of: 2026-11-11
confidence: medium
untested: "No project was run for this note; only the fetched documentation and source files were read."
category: coding-references
topic_area: "code-web: Angular reactive forms"
tags: [angular, forms, reactive-forms, form-control]
client: Librarian
sources:
  - id: S1
    title: "Reactive forms"
    publisher: Angular docs
    url: https://angular.dev/guide/forms/reactive-forms
    accessed: 2026-11-11
    license: "CC BY 4.0"
  - id: S2
    title: "FormControl"
    publisher: Angular source
    url: https://github.com/angular/angular/blob/main/packages/forms/src/model/form_control.ts
    accessed: 2026-11-11
    license: "MIT"
---
# Reactive forms keep an explicit, immutable model of form state

**Answer:** Reactive forms are a model-driven way to handle form inputs whose values change over time. They use an explicit, immutable approach: each change returns a new state, which keeps the model consistent between changes. Form inputs and values are provided as observable streams that you can also read synchronously.

This style is straightforward to test, because the data is consistent and predictable when you request it. Reactive forms differ from template-driven forms, which rely on directives in the template and track changes asynchronously with mutable data.

## A basic control

There are three steps to using form controls: register the reactive forms module, instantiate a `FormControl`, and register that control in the template.

## In source

`FormControl` tracks the value and validation status of an individual form control. Together with FormGroup, FormArray, and FormRecord, it is a core building block of Angular forms.

## See also

- [angular-inputs](https://iinventedlight.com/library/notes/angular-inputs/)
- [angular-dependency-injection](https://iinventedlight.com/library/notes/angular-dependency-injection/)

## Claims

- id: C1
  claim: Reactive forms are a model-driven way to handle changing form inputs.
  source: S1
  evidence: "Reactive forms provide a model-driven approach to handling form inputs whose values change over time."

- id: C2
  claim: Each change to form state returns a new state.
  source: S1
  evidence: "Each change to the form state returns a new state"

- id: C3
  claim: FormControl tracks the value and validation status of one control.
  source: S2
  evidence: "Tracks the value and validation status of an individual form control."

- id: C4
  claim: FormControl is one of four fundamental Angular form building blocks.
  source: S2
  evidence: "This is one of the four fundamental building blocks of Angular forms, along with"

## Sources

- [S1] Reactive forms. Angular docs. https://angular.dev/guide/forms/reactive-forms . License: CC BY 4.0. Accessed 2026-11-11.

- [S2] FormControl. Angular source. https://github.com/angular/angular/blob/main/packages/forms/src/model/form_control.ts . License: MIT. Accessed 2026-11-11.


License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted). Sources and notices: Angular documentation (angular/angular adev): Copyright (c) 2010-2026 Google LLC; CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Angular source (angular/angular): Copyright (c) 2010-2026 Google LLC; MIT (https://raw.githubusercontent.com/angular/angular/main/LICENSE). Text was condensed and changed from the originals.

---

Agents: [/agents.md](/agents.md) | [/.well-known/agent-library.json](/.well-known/agent-library.json).
