Исходя из некоторых классических языков шаблонов на стороне сервера (php, jsp), у меня есть общий архитектурный вопрос по React.js:
Могу ли я ограничить отображение определенных компонентов страницы только на стороне сервера? И соответственно уменьшить пакет javascript на стороне клиента?
* Я нахожу это часто смехотворно большим. Одна причина (afaik): у каждого компонента должна быть возможность повторно визуализироваться при изменении состояния и навигации по SPA- (также известной как soft, virtual ..), поскольку все изменения поступают в виде данных, а не в виде предварительно отрисованных фрагментов HTML (afaik). .
По сути, я вижу 2 разных типа разделов контента почти во всех своих веб-проектах:
1) высокодинамичные интерактивные разделы "facebook-ish" Персональные приветствия, сообщения и счетчики сообщений, лайки и ответы… здесь поведение React по умолчанию является наилучшим: поступают новые данные, изменяется глобальное состояние (хранилище redux), и все затронутые компоненты повторно отрисовываются. Это было бы непростой задачей без разумных принципов реагирования и сокращения. И, конечно же, рендеринг / обновления на стороне клиента - это путь.
Часто это область входа пользователя вверху («Привет, Джо, 5 непрочитанных сообщений»), некоторые текущие данные (акции, погода,…) посередине и комментарии ближе к нижней части.
2) «Статический» контент SSR (думаю, PHP)
Однако для многих разделов я точно знаю, что ничего такого является динамическим на стороне клиента. Меню нижнего колонтитула, например, могут происходить из базы данных, но обязательно не изменяются в течение сеанса. (Даже если Джон Доу решит поставить лайк, прокомментировать или изменить свое имя…)
Рендеринга их только на стороне сервера было бы достаточно. Часто блок основного контента также может работать только с SSR. (И все подкомпоненты макета, необходимые для рендеринга его html)
Тем не менее, я должен передать все компоненты клиентскому пакету, чтобы также работала виртуальная / программная навигация по страницам ... (которая передает новые данные, но не предварительно обработанные разделы)
Вы могли бы сказать мне в качестве обходного пути просто убрать нижний колонтитул из точки установки контейнера реакции, но это не моя точка зрения ... "статические", иначе говоря, разделы, которые могут работать с чистым SSR, могут быть в другом месте, между динамическим заголовком и нижним ответы / отзывы / понравившиеся разделы…
Я хотел бы отметить компоненты типа 2 как «SSR-достаточно» (а также их подкомпоненты - если дерево зависимостей веб-пакетов не выяснится, они также используются в компонентах Type1-CSR…).
Так что отправьте его как отдельный HTML-объект. Кроме того, необходимо будет получить его "предварительно обработанный" при навигации по виртуальным страницам в стиле SPA. (поскольку знания о компонентах будут отсутствовать в клиентском пакете)
Есть ли способ сделать это? Кто-нибудь задумывался об этой общей, имхо распространенной проблеме раньше ...?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Привет, Фрэнк, Вы нашли способ решения этой проблемы?