Я загружаю динамическую таблицу из файла JSON, а в td я использую угловое выражение для оценки имени класса css на основе некоторой логики приложения. Код HTML и TS выглядит следующим образом:
<td *ngFor='let colData of rowData.columns'
id="{{colData.colIndex}}"
(click)="selectColumn(colData.colIndex)"
[ngClass]="getColumnClassName(colData.colIndex,rowData.rowIndex)"
name="cell">
{{colData.cell.value}}
</td>
getColumnClassName(selectedColIndex,selectedRowIndex):string {
var colSelected = 'cell-default';
if (this.selectionSettings.columnsToSelect.filter(e => e.colIndex === selectedColIndex).length > 0) {
if (selectedRowIndex >= this.selectionSettings.startIndex ) {
colSelected = 'cell-selected'
}
}
return colSelected;
}
Это работает правильно.
Иногда JSON может содержать так много записей [1000 строк и 10 столбцов], что это выражение CSS будет оцениваться 1000*10 раз. Также есть вероятность, что этот список может увеличиться
Является ли этот подход назначения классов CSS оптимальным, когда речь идет о производительности. Я чувствую, что пользовательский интерфейс зависает во время рендеринга таблиц с таким количеством записей. Как мы можем гарантировать, что браузер не перегружен, но правильно назначает классы CSS?