В настоящее время я использую Angular 7 Mat Table для отображения данных в таблице. Я также использую шаблон Redux с Angular Store. Я добавил дополнительную функцию, где пользователь может щелкнуть строку, и она расширяется. Я загружаю курсы в ngOnInit
this.store.dispatch(new courseActions.Load());
Тогда подписывайтесь на изменения в магазине
this.store.pipe(select(fromCourses.getCourses))
.subscribe(courses => {
this.dataSource = new MatTableDataSource(courses);
})
Действие по открытию строки
export class OpenRow implements Action {
readonly type = CourseActionTypes.OpenRow;
constructor(public payload: ICourse) {}
}
В ICourse есть свойство show, где при значении false строка закрывается, а при значении true она открывается. Проблема сейчас в том, что повторный рендеринг данных каждый раз при щелчке строки выполняется медленно (это занимает около секунды, 700 строк). Первоначально я не использовал шаблон избыточности, но из-за сложности приложения решил, что было бы лучше сделать это, для каждого ряда данных можно выполнить несколько запросов http, существуют другие части приложения, которые используют данные. Я мог бы отделить этот аспект от использования шаблона избыточности, но есть http-вызовы, которые будут манипулировать данными в строках, и их нужно будет повторно обработать.
Есть ли более чистый и быстрый способ сделать это?