@cached
Memoizes a getter so it only recomputes when its tracked dependencies change.
Syntax
@cached get computed() {} Returns
MethodDecorator — A decorator applied to a getter.
Examples
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { cached } from '@glimmer/tracking';
export default class ListComponent extends Component {
@tracked items = [];
@cached
get sorted() {
return [...this.items].sort((a, b) => a.name.localeCompare(b.name));
}
}
Notes
Plain getters already re-run lazily; add @cached only when the
computation is expensive or must return a stable reference across reads
within the same tracking frame.