alexfedoseev
@alexfedoseev
React & Rails Dev

Стратегия пре-популяции сторов в изоморфных flux-приложениях?

Расскажите как вы заполняете сторы в изоморфных flux-приложениях.

Если на клиенте мы можем запросить данные после того, как компонент выброшен в DOM. То на сервере стор нужно заполнить данными до ренедринга компонента. Распространённый приём: на родительские классы (HigherOrderComponents) вешается static-метод (например fetchData), инициирующий запрос к API и заполнение сторов. Он запускается и отрабатывает до того, как реакт начнет рендерить приложение.

<App>
  <SomeItemsHigherOrderComponent> // <----- has static method `fetchData`
    <SomeItems ... />
  </SomeItemsHigherOrderComponent>
  <OtherItemsHigherOrderComponent> // <----- has static method `fetchData`
    <OtherItems ... />
  </OtherItemsHigherOrderComponent>
</App>


В примерах на Github (flummox, redux) перед рендерингом запускаются все static-методы (то есть заполняются все сторы), после чего собирается апп. Насколько это рационально? Почему не запускать fetchData только того компонента, который в данный момент будем рендерить? То есть почему не забирать только те данные, которые требуются для отображения текущей страницы? Если пользователь захочет перейти на следующую — делать следующий запрос.

P.S. Автор flummox дал пояснения в комментариях к компонентам (один, два), но так или иначе — хелпер всё равно написан так, чтобы перебирать все компоненты и запускать все их static-fetchData-методы.
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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