#javascript #reactjs
Вопрос:
Возможно, это вопрос для новичка…
Я сам написал SPA довольно давно, на самом деле без каких-либо рамок. Был процесс входа в систему, и после входа в систему я создавал страницу приложения, включая все необходимые HTML, css и js. При создании HTML-кода для этой отдельной страницы у меня была возможность выполнять поиск и запросы на стороне сервера и т. Д., Чтобы «настроить» статический HTML-код для визуализации. По сути, я смог передать ему информацию о начальном состоянии, такую как номера версий, имя пользователя и другие атрибуты, а также другие данные, которые были получены на стороне сервера, но отображались либо статически, либо в некоторых случаях «жестко закодированы» в статических инициализациях переменных js.
Сейчас мы создаем React.js приложение. Этот СПА-салон также загружается после входа в систему через страницы Razor. Я хотел бы передать некоторую информацию о начальном состоянии вместе с отображаемым HTML, но я не знаю, какую разметку можно было бы использовать для этого, и возможно ли это вообще. Если компоненты React «скомпилированы» в статические объекты, и на стороне сервера нет процесса, ответственного за их настройку по запросу, я полагаю, что вся информация о состоянии должна быть получена с помощью вызова API AJAX, выполненного очень рано в процессе.
Поэтому мой вопрос заключается в следующем: есть ли способ «настроить» компоненты, когда они извлекаются с сервера? Или лучше всего следовать модели, отображая SPA статически, и позволить ей получить начальное состояние с помощью раннего вызова API, если это необходимо. Если есть возможность настроить отображаемый вывод, где мне следует искать дополнительную информацию о том, как это сделать правильно?
Комментарии:
1. Если вы используете обычный экспресс для обслуживания своего приложения, вы можете выполнить там необходимую логику на стороне сервера при создании HTML-ответа. Если вы используете next.js, вы можете использовать встроенную функцию для инициализации необходимых реквизитов.
2. В будущих версиях React это может быть решено естественным образом с помощью серверных компонентов