заставляет перерисовать данные?
Почему даже без использования OnPush массив не перерендеривается?
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class AppComponent implements OnInit {
title = "CodeSandbox";
countList: (string | number)[] = [1, 2, 3];
constructor(private cdr: ChangeDetectorRef) {}
ngOnInit() {
setTimeout(() => {
this.title = "hello";
this.countList.push("!!!");
this.cdr.detectChanges();
}, 2000);
}
}
<div>
<h1>
Welcome to {{ title }}!
</h1>
{{countList}}
</div>
push никогда не трекается
то есть нужно только перезаписывать весь массив?
жесть
совсем нет this.countList = [...this.countList, "!!!"];
я про то, что нужно каждый раз заново создавать массив
а если там 20 000 элементов
Создастся новый массив с 19999 ссылками на те же объекты, что и в старом, не должно быть сильно долго
лучше какой-то behaviorSubject использовать
Обсуждают сегодня