Memoization with Computed Signals
Explain how computed() signals provide automatic memoization as a performance technique distinct from manual caching.
Memoization — caching an expensive computation's result and reusing it as long as its inputs haven't changed — is a classic performance technique, and computed() signals give Angular developers this behavior essentially for free, without hand-writing a manual cache, which is worth understanding specifically as a performance topic distinct from just knowing computed()'s basic syntax (covered separately under Computed Signals in the state group).
A plain getter is like recalculating your monthly budget from scratch every single time someone asks how much you're spending, even if nothing has changed since the last time you checked; a computed signal is like keeping a running total that only updates when an actual transaction occurs, instantly handing over the same correct number for every question in between.