Существуют некоторые страницы и компоненты. Один компонент может находится на нескольких страницах.
Страница home содержит, например, компонент block. С помощью next.js формирую страницу с данными на сервере и отображаю пользователю. Но другая страница тоже имеет компонент block. Получается, что на ней будет дублироваться код загрузки данных (как в home), что не есть хорошо.
Что я предполагаю:
1. Сформировать данные на сервере и сохранить в store
2. Обращаться к этому store с других страниц
3. Сохранить страницу целостной для поисковых роботов (со всеми данными)
Сейчас воспользовался библиотекой next-redux-wrapper. Вызвал на странице home функцию getServerSideProps и сохранил значение в store. При переходе на другую страницу данные для компонента block берутся из store. Но если зайди на сайт не со страницы home, а с другой, где есть компонент block, тогда, естественно, store будет пустым. Получается, что нужно вставить getServerSideProps, который будет дублем.
Сами функции getServerSideProps и другие вызываются на страницах. В компонентах они не работают.
Может быть сделать какую-то нулевую страницу, которая будет рендерить компоненты с сервера, записывать данные в store и потом делать redirect на запрашиваемую пользователем страницу?
godsplane, точнее не дублировать код загрузки компонента, надо что бы компонент 2жды не загружался на разных страницах, а 1 раз всего лишь, кароче оптимизация 100 уровень
szQocks, я так понял проблема именно в том что данные для одного и того же компонента будут дважды загружатся, но не уверен что это прям настолько критично и не факт что через стор это будет работать быстрее
szQocksgodsplane просто интересно, как реализуют на проектах. Сейчас мне не у кого спросить. То есть это нормальная схема, что я буду на каждой странице вызывать рендер один и тот же? Например, для навигационного меню
AlexCruel, но мало ли если мы не поняли тебя и ты имеешь ввиду про вообще оптимизацию лишних рендеров, то для этого используют обёртки над страницами, типа если на каждой странице должна быть шапка одна и та же, и один например и тот же футер - то при переходе между страницами они не должна перерисовываться, с использованием layouts , гугли кароч если что next layouts