ViewChild(ren) x document.getElementById - In ngFor and style class

Leaving aside the wisdom of 1000-item lists in general, I don’t understand what you are talking about with reloading of pages and new requests. Angular change detection is going to be both more readable and do a better job of dealing with a structure like the following than any homebrew manual DOM manipulation would, which seems to be more or less what you are asking for:

fruits = [
  {name: "apple"},
  {name: "banana"},
  {name: "cherry"},
];

mogrifyColor(fruit): void {
  fruit.color = fruit.color === 'red' ? 'blue' : 'red';
}
<ion-item *ngFor="let fruit of fruits">
  <button ion-button [style.background-color]="fruit.color" (click)="mogrifyColor(fruit)">{{fruit.name}}</button>
</ion-item>