RFC: Setting OnPush as the default Change Detection Strategy #66779
Replies: 29 comments 19 replies
-
|
The angular team is eager to hear what you think about the eager change detection :D |
Beta Was this translation helpful? Give feedback.
-
|
It was about time.
Everton Canez
Software Developer
https://notreniev.github.io
…On Tue, 27 Jan 2026 at 22:24, Deku-nattsu ***@***.***> wrote:
The angular team is eager to hear what you think about the eager change
detection :D
—
Reply to this email directly, view it on GitHub
<#66779 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABCP6XUU7A5I6AS6AV22Q6L4I7QQVAVCNFSM6AAAAACTDC4LI6VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKNRSGIZTGMI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
Why not to go with approach to define the default globally? |
Beta Was this translation helpful? Give feedback.
-
|
Glad to see Angular moving decisively in this direction, this change has been awaited for a long time. |
Beta Was this translation helpful? Give feedback.
-
|
Totally agree! With thousands of components in my project already marked OnPush, this change would be such a relief for the codebase 😅 |
Beta Was this translation helpful? Give feedback.
-
|
i agree 100% You guys can make it even more clean by making is same as u did with that we dont even have to write this or see it , more like it's by default as
and if we want it as eager we write it down then
more like just swap Rules :D |
Beta Was this translation helpful? Give feedback.
-
|
I would love if Not a big deal, only it is nice when the "upgrade to Angular@xx" PR doesn't need to touch lots of files. |
Beta Was this translation helpful? Give feedback.
-
|
Extremely keen for this change. The ESLint for Angular plugin helps make sure the strategy is present, but just like Tangentially, would this be possible prior to the official changeover with something similar to the old |
Beta Was this translation helpful? Give feedback.
-
|
Usually not one to "+1" on threads, but I'm beyond excited for this change. As an educator, it makes the defaults more "sane" and easy to explain to students. Can't support this endeavor enough! |
Beta Was this translation helpful? Give feedback.
-
|
I hope that when using Zoneless, ChangeDetectionStrategy can be removed, ignored, or even deleted. Also, I hope for a future where Angular is only Zoneless + without ChangeDetectionStrategy. |
Beta Was this translation helpful? Give feedback.
-
|
I welcome this. Searching for |
Beta Was this translation helpful? Give feedback.
-
|
Definitely do not anticipate anything breaking with this update as long as the |
Beta Was this translation helpful? Give feedback.
-
|
nothing blocking, I'm just super excited to see this change in all codebase. |
Beta Was this translation helpful? Give feedback.
-
|
This is a great idea. In our company, we use custom schematics to set up projects for the teams and we already have |
Beta Was this translation helpful? Give feedback.
-
|
welcome change, now eagerly waiting for new SFC RFC and some solution for double imports. currently with inline template we can't use js template literals easily, and tailwind class autocomplete is also a hit and miss. |
Beta Was this translation helpful? Give feedback.
-
|
I really like the new name for the Default change detection strategy 🙂 It feels much easier to understand for newcomers. |
Beta Was this translation helpful? Give feedback.
-
|
This is a long-awaited change. Love where Angular is heading! |
Beta Was this translation helpful? Give feedback.
-
|
I would like to have it also available at project bootstrap for |
Beta Was this translation helpful? Give feedback.
-
|
Not surprise, i was thinking when angular team make |
Beta Was this translation helpful? Give feedback.
-
|
I would consider migrating ChangeDetectionStrategy from an enum to a string union, for example "Eager" | "OnPush". |
Beta Was this translation helpful? Give feedback.
-
|
I’ve been thinking about this for quite some time now and I still stand by that opinion - https://www.linkedin.com/feed/update/urn:li:activity:7203428184841703425?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7203428184841703425%2C7203435060170047491%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287203435060170047491%2Curn%3Ali%3Aactivity%3A7203428184841703425%29 The only thing I would change is the name. So instead of |
Beta Was this translation helpful? Give feedback.
-
|
I am all for this! 🚀 I've been wanting OnPush to be the default, and renaming the current default to |
Beta Was this translation helpful? Give feedback.
-
|
Only one thing to say: Hell Yeah! |
Beta Was this translation helpful? Give feedback.
-
|
I have been eagerly waiting for this change, |
Beta Was this translation helpful? Give feedback.
-
|
Sounds great! OnPush-it :D |
Beta Was this translation helpful? Give feedback.
-
|
I think this type of choice should have been made years ago. |
Beta Was this translation helpful? Give feedback.
-
|
I like |
Beta Was this translation helpful? Give feedback.
-
|
👍 Totally in favour, I was hoping for this for a long time.
|
Beta Was this translation helpful? Give feedback.
-
|
Yes less components marked with OnPush please 🙏 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Authors: @MarkTechson & @alxhub
Area: Angular Framework
Posted: January 27, 2026
Status: Open
We're planning to make a small, but important changes to Angular components:
ChangeDetectionStrategy.OnPushChangeDetionStrategy.DefaulttoChangeDetectionStrategy.EagerOnPush by default
Change detection is Angular's way of identifying changes in application state and keeping the user interface in sync. The move to zoneless has created a requirement that components explicitly use
ChangeDetectionStrategy.OnPushor at least be "OnPush compatible". Being "OnPush compatible" means that your application's functionality would not be negatively impacted by switching toOnPushwithout any other code changes.Using
OnPushhas long been considered an Angular best practice, and developers have been requesting that we make this change for some time. Having best practices as the default means that developers and teams will not be required to take the additional opt-in step for every component. We believe now that zoneless is stable and well supported across the ecosystem, the time is right. Zoneless is the present and future of Angular applications, and changing the defaultChangeDetectionStrategyis aligned with this reality.Similarly to how we changed the default version of standalone, we will automatically migrate existing Angular codebases to explicitly set
ChangeDetectionStrategy.Eager, preserving their current behavior.Community Questions
ChangeDetectionStrategy.Eager
Renaming the default change detection strategy gives developers and tooling more insight into the meaning of
ChangeDetectionStrategy.Default. On its own, a developer coming across this may assume incorrectly that the name "default" is a "recommendation" of sorts and is compatible with modern Angular zoneless practices, for example. Whereas in reality, "default" means that change detection happens by default, without needing to mark the component explicitly for check. This change aims to reduce any ambiguity in this scenario and others like it.Before this change:
After the migration:
With this change, the functionality remains the same: Angular will eagerly check whether the component's DOM needs an update whenever change detection traversal reaches it, rather than only doing so when it is explicitly marked for check.
Next Steps
We are targeting these changes for Angular v22 in May 2026. While we don't expect this to have any significant impact on your codebases, we're eager to hear what you think and to learn of anything we may have missed.
Let us know in the comments on this RFC.
Beta Was this translation helpful? Give feedback.
All reactions