Как сейчас выглядит взаимодействие django + react?

Всем привет

Сейчас изучаю react.js, так как его везде спрашивают в вакансиях. Появилось ряд вопросов:

1) Для чего чаще используют react в связке с Django?

- вставляют какие-то интерактивные элементы в страницы?
- делают на нем весь фронт?
- Пилят исключительно админку?

2) Можно ли совмещать обычные страницы (которые отрисовываются через view.py/urls.py), с тем что получается с DRF + react.js + routing?). т..е допустим часть сайта обычные странички, и другая часть на реакте?

3) Какой сейчас стандартный набор пакетов, который используется для этой связки? А то смотрю обучалки, там все время все разные пакеты используют?

4) Могут ли поисковики нормально индексировать такие сайты, либо все теряется в бездне?

5) Насколько действительно нужно знать хорошо реакт, чтобы закрыть его в резюме?
  • Вопрос задан
  • 4864 просмотра
Решения вопроса 2
@davidnum95
React общается с бэкэндом исключительно через rest api, не важно какой сервис предоставляет данные, будь то php, django или nodejs. Совмещать можно, но не нужно, это разные слои архитектуры приложения в целом.
Ответ написан
Комментировать
@iMrDron
1) Для чего чаще используют react в связке с Django?
- вставляют какие-то интерактивные элементы в страницы?
- делают на нем весь фронт?
- Пилят исключительно админку?

В каждом проекте своя специфика, я видел все три варианта и все они отлично подходят.

2) Можно ли совмещать обычные страницы (которые отрисовываются через view.py/urls.py), с тем что получается с DRF + react.js + routing?). т..е допустим часть сайта обычные странички, и другая часть на реакте?

Да, это распространённый юзкейс, допустим у вас сайт весь просто на джанго, но пару страничек нужно сделать динамичными, вот там джанго вьюха просто отдаёт хтмл, где только допустим, шапка и футер и подключается скрипт react_app.js. и дальеш уже контент странички на реакте, допустим какой-нибудь шаборд. Очень удобный вариант, можно и не только дашборды, можно допустим виджет с нотификациями. Но, все эти вставки на реакте уже естественно получают данные по апи - django rest framework.

3) Какой сейчас стандартный набор пакетов, который используется для этой связки? А то смотрю обучалки, там все время все разные пакеты используют?

react + redux + react-router - это основной стек, а дальше уже добавляют что нужно. бывает что и роутер не нужен.

4) Могут ли поисковики нормально индексировать такие сайты, либо все теряется в бездне?

Да, тут есть проблема, гугл уже умеет вроде как рендерить js, но пока это все точно не понятно как работает.
Варианты есть такие:
https://prerender.io,
https://github.com/markfinger/python-react
или ещё почитать https://www.reddit.com/r/django/comments/406cpw/re...
Я лично пока ничего такого не делал, так что точно сказать не могу, но уверен можно решить этот вопрос.

5) Насколько действительно нужно знать хорошо реакт, чтобы закрыть его в резюме?

зависит от того как вы быстро обучаетесь) но вообще как только поймёте нормально как работать с стеком react + redux + react-router, так и включайте.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
sim3x
@sim3x
1) Для чего чаще используют react в связке с Django?

- вставляют какие-то интерактивные элементы в страницы?
слишком жирно - такое проще на чистом жс сделать
- делают на нем весь фронт?
если есть фронтендер и он сам пилит фронт
- Пилят исключительно админку?
проще прицепить ангуляр за 10 минут

2) Можно ли совмещать обычные страницы (которые отрисовываются через view.py/urls.py), с тем что получается с DRF + react.js + routing?). т..е допустим часть сайта обычные странички, и другая часть на реакте?
скорее нет, чем да

4) Могут ли поисковики нормально индексировать такие сайты, либо все теряется в бездне?
поисковики видят только хтмл. Нет контента в хтмл - поисковики ничего не индексируют

5) Насколько действительно нужно знать хорошо реакт, чтобы закрыть его в резюме?
скорее зависит от наглости.
Теоретически, нужно уметь писать приложение без постоянного гугления

Реакт слабо совместим с джангой.
Через кложур-скрипт о совместим с жс(фронт)-нодой(бек) или жс(фронт)-джавой(бек)
Или нужно будет пилить апи на джанге, доставать данные через ноду(джавой) и нодой(джавой) рендерить хтмл
Ответ написан
Guest007
@Guest007
Django, Python, Linux и всё такое...
Согласен с камрадами davidnum95 и @bioroot
У нас мухи отдельно, котлеты отдельно. DRF - для бэкенда. С ним работают и мобильное приложение и фронтенд на React. Причем реакт собирается просто в статику. Никаких nodejs на продакшене. Требует слаженной работы команды и четкого разграничения ответственностей.
Ответ написан
Комментировать
@bioroot
React работает через REST, а для него есть django rest framework. Погуглив можно найти обучалки для этой связки. И подозреваю, что она даже позволит делать страницы и на react и без него без особых проблем. Главный вопрос - зачем?

На мой взгляд, сейчас общая тенденция идёт к тому чтобы делать голый rest api вместо обычного сайта и уже через него подгружать данные хоть в мобильное приложение, хоть на обычный компьютер, хоть на какое-то ещё устройство, которое эти данные сможет красиво отобразить. Но не понятно, зачем это делать на Django. По крайней мере в настоящий момент, когда среднестатистическому сайту такие навороты ни к чему, а для крупных проектов важнее производительность, чем возможности обвязки Django.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы