Всего одного сервера будет достаточно для ваших нужд.
Сервер
Вам потребуется обслуживать статические файлы с одной из ваших конечных точек, предпочтительно корневой конечной точки (/
).
Ваш интерфейс может вызывать ваши конечные точки API без использования доменного имени.По умолчанию вызовы API без доменного имени будут отправляться на тот же источник.
Допустим, ваш сервер находится на example.com
.
Ваш код извлечения будет выглядеть следующим образом
fetch('/endpoint')
.then((response) => response.json())
.then(() => {
// do happy things
});
Если вы не укажете имя домена в URL-адресе извлечения, ваш браузер по умолчанию вызовет API для вашего корневого домена => http://example.com/endpoint
.
В localhost
ваш вызов API по умолчанию перейдет на http://localhost/endpoint
.
Так что вам никогда не придется беспокоиться о том, в какой домен выполняются вызовы API.
SSR
Вы почти правы с точки зрения SSR
Моя идея о том, что означает SSR, заключается в том, что сервер будет обслуживать файлы React
Но в действительности это означает, что приложения React являются приложениями JavaScript.Без SSR с сервера с пакетными файлами будет обслуживаться только простой HTML с одним div (в основном), и ваша DOM будет инициализирована в браузере.Так что если у вас отключен JavaScript в вашем браузере, у вас будет только белый экран, что очень плохо для SEO.Когда приложения React отображаются на сервере, ваш код React выполняется на сервере, и полный ответ DOM после инициализации React отправляется в ответ в виде HTML.Таким образом, сайт загружается быстрее для пользователя, и даже если JavaScript отключен, страница будет загружаться, что дает преимущества SEO.