20
loading...
This website collects cookies to deliver better user experience
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.scss']
})
export class SampleComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.scss'],
changeDetection:ChangeDetectionStrategy.OnPush
})
export class SampleComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}
<button (click)="valueChange()" >
Change input to 5
</button>
<app-samplechild [data]="data" ></app-samplechild>
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.scss']
})
export class SampleComponent implements OnInit {
data={value:1};
constructor() { }
ngOnInit(): void {
}
valueChange(){
this.data.value=5;
}
}
<p>
The value from parent is
{{data.value}}
</p>
<p>
{{whenComponentRerendered()}}
</p>
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
@Component({
selector: 'app-samplechild',
templateUrl: './samplechild.component.html',
styleUrls: ['./samplechild.component.scss'],
changeDetection:ChangeDetectionStrategy.OnPush
})
export class SamplechildComponent implements OnInit {
@Input('data') data!:any;
constructor() { }
ngOnInit(): void {
}
whenComponentRerendered(){
console.log('component rerendered');
}
}
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.scss']
})
export class SampleComponent implements OnInit {
data={value:1};
constructor() { }
ngOnInit(): void {
}
valueChange(){
this.data={
...this.data,
value:5
}
}
}
<p>
The value from parent is
{{ data.value }}
</p>
<p>
{{ whenComponentRerendered() }}
</p>
<button (click)="changeValue()">Change button from child component</button>
import {
ChangeDetectionStrategy,
Component,
Input,
OnInit,
} from '@angular/core';
@Component({
selector: 'app-samplechild',
templateUrl: './samplechild.component.html',
styleUrls: ['./samplechild.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class SamplechildComponent implements OnInit {
@Input('data') data!: any;
constructor() {}
ngOnInit(): void {}
whenComponentRerendered() {
console.log('child component rerendered');
}
changeValue() {
this.data.value = 5;
}
}