Deep auto-tracking for when you just don't care, and want things to work (at the cost of performance in some situtations)
TypeScript
31
509 commits
updated Oct 12, 2026
Deep tracking using proxies for complex objects for when you want everything to be reactive, at the cost of performance.
This is not recommended for performance-sensitive situations such as rendering a table from a large data set where updates to that data set are frequent. Even without updates, deeply tracking will increase initial-render time.
npm install ember-deep-tracked
# or
yarn add ember-deep-tracked
# or
pnpm add ember-deep-tracked
# or
ember install ember-deep-tracked
import { tracked } from 'ember-deep-tracked';
class Foo {
@tracked obj = { bar: 2 };
}
or in a component:
import { tracked } from 'ember-deep-tracked';
import Component from '@glimmer/component';
export default class Foo extends Component {
@tracked obj = { bar: 2 };
}
{{this.obj.bar}} <- automatically updates when "obj.bar" changes
using this decorator form will track the reference, like tracked from @glimmer/tracking does, and then also deeply tracks the value.
the entire object and any sub object can be swapped with other objects and they'll be automatically tracked.
import { deepTracked } from 'ember-deep-tracked';
is also available, and is an alias of tracked
See the Contributing guide for details.
This project is licensed under the MIT License.
Overall
Maintained
Code review
Latest release
Releases this year
48 followers · starred Jun 2021
Deep auto-tracking for when you just don't care, and want things to work (at the cost of performance in some situtations)
TypeScript
31
509 commits
updated Oct 12, 2026
Deep tracking using proxies for complex objects for when you want everything to be reactive, at the cost of performance.
This is not recommended for performance-sensitive situations such as rendering a table from a large data set where updates to that data set are frequent. Even without updates, deeply tracking will increase initial-render time.
npm install ember-deep-tracked
# or
yarn add ember-deep-tracked
# or
pnpm add ember-deep-tracked
# or
ember install ember-deep-tracked
import { tracked } from 'ember-deep-tracked';
class Foo {
@tracked obj = { bar: 2 };
}
or in a component:
import { tracked } from 'ember-deep-tracked';
import Component from '@glimmer/component';
export default class Foo extends Component {
@tracked obj = { bar: 2 };
}
{{this.obj.bar}} <- automatically updates when "obj.bar" changes
using this decorator form will track the reference, like tracked from @glimmer/tracking does, and then also deeply tracks the value.
the entire object and any sub object can be swapped with other objects and they'll be automatically tracked.
import { deepTracked } from 'ember-deep-tracked';
is also available, and is an alias of tracked
See the Contributing guide for details.
This project is licensed under the MIT License.
Overall
Maintained
Code review
Latest release
Releases this year
48 followers · starred Jun 2021