Начал разбираться с React-ом, и возникли у меня вопросы. Сейчас есть приложение на реакте (с браузерным роутерингом) и express сервер, на другом порту. Они обмениваются данными и всё хорошо работает. Я хочу добавить серверный рендеринг, чтобы на сервере решать кому какие страницы отдавать (есть авторизация). Но не могу понять, как соединить вместе react и express. Что конкретно хочу:
- Браузер делает запрос к серверу
- Сервер решает, что отдавать, и отдает только текущую страницу
- При смене урла, браузер отправляет запрос на сервак (без перезагрузки), получает html (или новый бандл файл) и перерисовывает страницу
Гугл помочь, не смог. Смотрел как это работает в инстаграме, там html вообще не грузится, запросы идут только за данными.
Правильно ли я понимаю, что реакт приложение нельзя разделить на отдельные страницы, которые, по мере необходимости, будут подгружаться с сервака? Я так понял, что весь сайт (все страницы) упаковываются в один bundle.js файл, и потом оттуда рендерятся, а renderToString используется только для ускорения загрузки при первом запросе.
Если всё таки можно разделить, подскажите как. Например, у меня есть три странички: Main, News, About. Я хочу, чтобы при смене url-a, с сервера подгружался html и страница перерисовывалась (без перезагрузки). При этом, чтобы в бандле осталась только логика компонентов (иначе нет смысла в подгрузке из сервера).