Задать вопрос
@vitaliyfilatov

Есть ли смысл использования Redux в Ангуляр приложении?

На данный момент встаёт вопрос использования Redux в Ангуляр приложении. Redux - мощный инструмент для разработки (особенно для средних и больших приложений, которое и планируется разрабатывать). Однако, есть большие сомнения на этот счёт. В приложении, о котором идёт речь много иерархических структур (иногда уровней больше 3) и тогда, код с использованием Redux (на данный момент внедряем ngsx) для компоненты будет выглядеть примерно так (код максимально упрощён для отражения только идеи):
export class SomeComponent {

  tableData: TreeTableData = new TreeTableData();
  //build TreeTableData for tree table view
  builder: SomeBuilder;
  public pageSize:number;
  public page:number;

  @Select(SomeState.state) state$: Observable<StateModel>;

  constructor(private store: Store) {
    //...
    //instantiate and configure builder
    //...
    this.state$.subscribe(patientState => {
        this.tableData = this.builder.build(state.items);
        this.restorePaginator();
        this.tableData.isLoading = state.loading;
      });
    this.builder.expandRowCallback = (row, tableData) => {
      ///...
      //dispatch that row is expanded
      ///...
    };
    this.builder.tableConfig.events.rowCollapsed = (row, tableData) => {
      ///...
      //dispatch that row is collapsed
      ///...
    };
  }

  private restorePaginator() {
    if(this.pageSize)
      this.tableData.pageSize = this.pageSize;
    if(this.page)
      this.tableData.page = this.page;
  }

  onPageNumberChanged(page:number) {
    this.page = page;
  }

  onPageSizeChanged(pageSize:number) {
    this.pageSize = pageSize;
  }
}

Т.е. для корректного восстановления состояния иерархического вью приходится каждый раз оповещать хранилище об изменении статуса скрытия/раскрытия строки. И это только вопрос раскрытия/скрытия.
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Сложный Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы