fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.
https://demo.fullstack-development.com/
MIT License
91 stars 13 forks source link

Пофиксить SSR #171

Closed Znack closed 3 years ago

Znack commented 3 years ago
  1. Запустить проект в dev-режиме, проверить, что фронтенд отдаётся браузеру уже отрендеренной страницей без всяких ошибок
  2. Запустить проект в prod-режиме, проверить, что фронтенд отдаётся браузеру уже отрендеренной страницей без всяких ошибок

Все появившиеся ошибки надо исправить, сделать запуск SSR стабильным.

Потом можно пообщаться с @in19farkt по поводу след таски о SSR: https://github.com/fullstack-development/react-redux-starter-kit/issues/158

Geksanit commented 3 years ago

Сервер не рендерит верстку потому что асинхронная фича вложена в фичу(т.е. компонента, обернутая в withAsyncFeatures). Это ещё предстоит исправить. например RepositoriesSearchLayoutComponent на сервере подтягивает данные, а внутри есть Layout, соотвественно для него данных нет и рендерится null.

Znack commented 3 years ago

А в итоге ишью можно закрывать, или тут еще остались косяки? @Geksanit @in19farkt

in19farkt commented 3 years ago

Ну оно вроде бы работает, но отдает пустую страницу из-за асинхронных фич, если убрать асинхронные фичи, то должно работать

Znack commented 3 years ago

А то есть сама проблема отгрузки асинхронных фич не решена? А у нас там фичи в демо проекте есть асинхронные? Может их все синхронными пока сделать?

in19farkt commented 3 years ago

да, проблема осталась, там на сколько я помню подгружаются и отрисовываются только фичи находящиеся на верхнем уровне дерева, если мы вложим асинхронные фичи друг в друга, то та что будет глубже заблокирует рендер. Я думаю тему с асинхронными фичами нужно как-то комплексно решать (если мы хотим наш стартеркит развивать), а сейчас стоит всё сделать синхронным, т.к. текущее решение не адаптировано в полной мере под SSR

Znack commented 3 years ago

Окей, я тогда это ишью пока закрываю, а про перевод асинхронных страниц отдельно таску сделаю.