Рендеринг сервера с помощью response-router v4 и предварительной выборки данных
Я много работал с рендерингом на стороне сервера с RR 3, поэтому я хотел посмотреть, как он работает в контексте v4. Я следовал учебному руководству с веб-сайта, но поскольку теперь рендеринг выполняется вместе с сопоставлением маршрутов, нет способа реализовать предварительную выборку данных, как раньше.
Вот как я использовал для рендеринга сервера с v3: https://github.com/alexnm/react-seed/blob/master/server/index.js
Основываясь на функции соответствия, я бы вызвал все функции предварительной выборки из всего дерева компонентов и затем ожидал с Promise.all
для них, чтобы закончить, а затем вызвать renderToString
Функция и вернуть HTML.
В RR4 у нас есть только <ServerRouter>
компонент, поэтому текущее решение, с которым я пришел, дублирует код рендеринга: https://github.com/FortechRomania/react-redux-complete-example/blob/master/src/server/index.js
Я также использую render
функция на <Match>
тег для запуска действий предварительной выборки. Это уродливо и вводит все виды зависимостей в родительский компонент страницы, которую я хочу визуализировать с предварительно выбранными данными.
Что мне здесь не хватает? Кто-нибудь нашел лучшее решение для этого сценария? Я еще не нашел ничего полезного.
1 ответ
В новой документации RR4 есть рабочий пример: https://reacttraining.com/react-router/web/guides/server-rendering/data-loading