Насколько грамотно построено взаимодействие между фронтом и бэком?
Реакт — это не фреймворк для SPA, а библиотека для создания интерфейсов. В крупных и/или старых веб-приложениях, особенно на этапе постепенного внедрения нового стека и перехода на SPA, вполне уместна и практикуется описанная вами схема, когда роутинг реализуется классически через многостраничность, а рендеринг происходит частично на сервере, а частично — на клиенте, причем дорисовываемые на клиенте куски интерфейса ("виджеты") могут быть как компонентами, так и самостоятельными реакт-приложениями (вместо реакта можно подставить любую другую библиотеку/фреймворк). Передавать данные через window тоже нормально, если эти данные уже были сформированы на сервере и использованы для серверного рендеринга.
Реакт — это не фреймворк для SPA, а библиотека для создания интерфейсов. В крупных и/или старых веб-приложениях, особенно на этапе постепенного внедрения нового стека и перехода на SPA, вполне уместна и практикуется описанная вами схема, когда роутинг реализуется классически через многостраничность, а рендеринг происходит частично на сервере, а частично — на клиенте, причем дорисовываемые на клиенте куски интерфейса ("виджеты") могут быть как компонентами, так и самостоятельными реакт-приложениями (вместо реакта можно подставить любую другую библиотеку/фреймворк). Передавать данные через window тоже нормально, если эти данные уже были сформированы на сервере и использованы для серверного рендеринга.