@neliudov
Имярек

Как подружить React с Symfony?

Я уже видел похожие вопросы тут, на тостере, но для меня они не оказались исчерпывающими, к сожалению. Как всё-таки соединить React с Symfony? У реакта должна быть отдельная папка, так? Допустим, фронтенд. Общение происходит посредством json, это тоже понятно. А дальше как? Симфони отправляет данные на один роут и реакт их там ловит? Допустим, пример:
/**
  *@Route("/posts")
  *
  /
public function index()
{
     return new JsonResponse($this->postRepository->findAllAsArray());
{

А реакт уже на том же роуте ловит эти данные? Или как?
  • Вопрос задан
  • 392 просмотра
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
1. Отдаете по всем роутам страниц либо Twig шаблон с div id=root и вашим бандлом. Либо для этой задачи поднимаете Node сервер(express/koa). Используйте Node сервер если нужен SSR.
2. Начальные статические данные пишем например в window.__INITIAL_STATE__, при инициализации на клиенте отправляем их в store.
3. Все общение клиентской и серверной части через REST API.
4. На клиентской стороне используете клиентский роутер(react-router-dom). Если используете SSR на стороне сервера используйте StaticRouter.
Пожалуй все.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@grinat
Смотря что ты хочешь, если spa, то вся статика отдается из папки с реактом, от симфони только рест апи, роуты у реста разные. Если nginx, то например все роуты вида /api/bla-bal перенаправлять на симфони, остальные в папку с фронтом.
Если отдельные страницы на реакте, то симфони просто отдает отдельные вьюхи, в этих вьюхах уже реакт.
Если ssr, то тоже самое что в первом абзаце, только все не айпи роуты идут к ноде, та рендерит на сервере html и отдает в браузер вместе с js, с ssr есть смысл заморачиваться если нужна индексация в яндексе, в любом случае это головная боль фронта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 июн. 2019, в 19:42
500 руб./за проект
16 июн. 2019, в 18:38
5000 руб./за проект
16 июн. 2019, в 17:14
5000 руб./за проект