Signals: explicit graph, fine-grained updates

Angular's take on fine-grained reactivity

Signals make reactive state explicit and track dependencies automatically. signal() holds a value, computed() derives from other signals, effect() reacts to changes. Templates that read signals update only the expressions whose dependencies changed — no more full-tree checks.

count = signal(0);
double = computed(() => this.count() * 2);

increment() { this.count.update(c => c + 1); }

// in the template: {{ count() }} and {{ double() }}

Contrast with classic change detection →

Takeaways

  • Signals make the reactive graph explicit.
  • computed() caches derivations; effect() is for side effects.
  • Pair signals with OnPush for crisp, predictable updates.

Enjoying This Lesson?

Your support helps create more comprehensive courses and lessons like this one. Help me build better learning experiences for everyone.

Support Awashyak