Skip to content

Commit eae8f7e

Browse files
JeanMecheleonsenft
authored andcommitted
feat(core): Set default Component changeDetection strategy to OnPush
The default change detection strategy is now OnPush. BREAKING CHANGE: Component with undefined `changeDetection` property are now `OnPush` by default. Specify `changeDetection: ChangeDetectionStrategy.Eager` to keep the previous behavior.
1 parent 050b14b commit eae8f7e

File tree

121 files changed

+5306
-268
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+5306
-268
lines changed

devtools/cypress/integration/view-component-metadata.e2e.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe('Viewing component metadata', () => {
2626
});
2727

2828
it('should display change detection strategy', () => {
29-
cy.contains('ng-component-metadata', 'Change Detection Strategy: Default');
29+
cy.contains('ng-component-metadata', 'Change Detection Strategy: OnPush');
3030
});
3131
});
3232

@@ -40,7 +40,7 @@ describe('Viewing component metadata', () => {
4040
});
4141

4242
it('should display change detection strategy', () => {
43-
cy.contains('ng-component-metadata', 'Change Detection Strategy: Default');
43+
cy.contains('ng-component-metadata', 'Change Detection Strategy: OnPush');
4444
});
4545

4646
it('should display correct set of inputs', () => {

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-pane/property-pane-header/component-metadata/component-metadata.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ import {
1616
} from '@angular/core';
1717

1818
import {
19-
AngularDirectiveMetadata,
2019
AcxDirectiveMetadata,
20+
AngularDirectiveMetadata,
2121
ComponentType,
2222
} from '../../../../../../../../protocol';
2323

24-
import {ElementPropertyResolver} from '../../../property-resolver/element-property-resolver';
2524
import {DocsRefButtonComponent} from '../../../../../shared/docs-ref-button/docs-ref-button.component';
25+
import {ElementPropertyResolver} from '../../../property-resolver/element-property-resolver';
2626

2727
@Component({
2828
selector: 'ng-component-metadata',
@@ -77,7 +77,7 @@ export class ComponentMetadataComponent {
7777

7878
const meta = metadata as Partial<AcxDirectiveMetadata | AngularDirectiveMetadata>;
7979
if (meta.onPush !== undefined) {
80-
return meta.onPush ? 'OnPush' : 'Default';
80+
return meta.onPush ? 'OnPush' : 'Eager';
8181
} else {
8282
return undefined;
8383
}

integration/cli-signal-inputs/src/app/greet.component.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Component} from '@angular/core';
1+
import {ChangeDetectionStrategy, Component} from '@angular/core';
22
import {TestBed} from '@angular/core/testing';
33

44
import {GreetComponent} from './greet.component';
@@ -38,6 +38,7 @@ describe('greet component', () => {
3838
/>
3939
`,
4040
imports: [GreetComponent],
41+
changeDetection: ChangeDetectionStrategy.Eager,
4142
})
4243
class TestCmp {
4344
clickCount = 0;
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import {Component} from '@angular/core';
1+
import {ChangeDetectionStrategy, Component} from '@angular/core';
22

33
@Component({
44
selector: 'app-root',
55
template: '<router-outlet></router-outlet>',
66
standalone: false,
7+
changeDetection: ChangeDetectionStrategy.Eager,
78
})
89
export class AppComponent {}

integration/platform-server/projects/ngmodule/src/app/http-transferstate-lazy-on-init/http-transferstate-lazy-on-init.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
*/
88

99
import {HttpClient} from '@angular/common/http';
10-
import {Component, OnInit} from '@angular/core';
10+
import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';
1111

1212
@Component({
1313
selector: 'transfer-state-http-on-init',
1414
template: ` <div class="one">{{ responseOne }}</div> `,
1515
standalone: false,
16+
changeDetection: ChangeDetectionStrategy.Eager,
1617
})
1718
export class TransferStateComponentOnInit implements OnInit {
1819
responseOne: string = '';

integration/platform-server/projects/ngmodule/src/app/http-transferstate-lazy/http-transfer-state.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {HttpClient} from '@angular/common/http';
10-
import {Component, OnInit} from '@angular/core';
10+
import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';
1111

1212
@Component({
1313
selector: 'transfer-state-http',
@@ -16,6 +16,7 @@ import {Component, OnInit} from '@angular/core';
1616
<div class="two">{{ responseTwo }}</div>
1717
`,
1818
standalone: false,
19+
changeDetection: ChangeDetectionStrategy.Eager,
1920
})
2021
export class TransferStateComponent implements OnInit {
2122
responseOne: string = '';
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import {Component} from '@angular/core';
21
import {CommonModule} from '@angular/common';
2+
import {ChangeDetectionStrategy, Component} from '@angular/core';
33
import {RouterOutlet} from '@angular/router';
44

55
@Component({
66
selector: 'app-root',
77

88
imports: [CommonModule, RouterOutlet],
99
template: '<router-outlet></router-outlet>',
10+
changeDetection: ChangeDetectionStrategy.Eager,
1011
})
1112
export class AppComponent {}

integration/platform-server/projects/standalone/src/app/http-transferstate-lazy-on-init/http-transfer-state-on-init.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
*/
88

99
import {HttpClient} from '@angular/common/http';
10-
import {Component, OnInit} from '@angular/core';
10+
import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';
1111

1212
@Component({
1313
selector: 'transfer-state-http',
1414
standalone: true,
1515
template: ` <div class="one">{{ responseOne }}</div> `,
1616
providers: [HttpClient],
17+
changeDetection: ChangeDetectionStrategy.Eager,
1718
})
1819
export class TransferStateOnInitComponent implements OnInit {
1920
responseOne: string = '';

integration/platform-server/projects/standalone/src/app/http-transferstate-lazy/http-transfer-state.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {HttpClient} from '@angular/common/http';
10-
import {Component, OnInit} from '@angular/core';
10+
import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';
1111

1212
@Component({
1313
selector: 'transfer-state-http',
@@ -17,6 +17,7 @@ import {Component, OnInit} from '@angular/core';
1717
<div class="two">{{ responseTwo }}</div>
1818
`,
1919
providers: [HttpClient],
20+
changeDetection: ChangeDetectionStrategy.Eager,
2021
})
2122
export class TransferStateComponent implements OnInit {
2223
responseOne: string = '';

modules/benchmarks/src/change_detection/transplanted_views/transplanted_views.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export class InsertionComponent {
5252
<insertion-component [template]="template" [viewCount]="viewCount"></insertion-component>
5353
`,
5454
standalone: false,
55+
changeDetection: ChangeDetectionStrategy.Eager,
5556
})
5657
export class DeclarationComponent {
5758
@Input() viewCount = 1;

0 commit comments

Comments
 (0)