это возможно и кто-то использует. Я лично не сталкивался и не пробовал. По идее, получается, что сервер все еще отвечает за формирование отдаваемой страницы, но разметка/функционал на странице сделаны на react - что удобнее, чем на чистом html+css+js или jQuery
понятно, ну мне короче нужно зафигачить вебсайт как раз-таки, чтобы один раз загружался интерфейс, и потом js делал все по обработке данных короче
Так вы сами захотели чуть выше SSR, что мешает от него отказаться и сделать SPA ?
ох... еще раз. Сделайте отдельный проект, напишите там свой интерфейс на react. Затем для деплоя надо получить билд. Если делали на основе create-react-app, то запустите npm run build. Появится директория с html+js+css+еще-что-то. Эту директорию говорите nginx'у хостить как статику. Для вашего django+drf-проекта ничего не изменится
понятно, спасибо
че там их связывать? бек должен запустить основной бандл фронта и все легче всего это сделать через манифест, в котором будут указаны ендпоинты фронта
> ендпоинты фронта может бэка? А что за манифест, где почитать? мне бы было интересно/полезно
не ендпоинты, не правильно сказал: ентрипоинты
то есть если спа, то там будет скорей всего один бандл webpack-assets-manifest есть плагин. есть ещё и другие тоже, смысл тот же
С Реактом так нельзя, с Vue можно
Ну вообще можно если не лень поддерживать отдельный шаблон для гидрации
Symphony и Lavarel могут например отрендерить Vue
Потому что они предназначены для пререндера как бэкэнд фреймворки. Тоже самое делает накст. И то же самое можно сделать на экспрессе для вью, реакта и прочего
и как это сделать для реакта?
С Django никак
Reactdom.render выполнить на экспрессе, а затем вернуть разметку
> webpack-assets-manifest Это вроде не то, о чем речь шла. Человек хотел вкорячить в одном проекте и код бэкэнда и код SPA. Я так и не понял зачем, но единственный профит вижу в том, что можно из бэка получить все эндпоинты и схемы данных, вместо того, чтобы их руками преписывать со сваггера.
А что будет, если в джанге создать отдельную апку для фронтенда, и ввести npm init -y в консоль, тем самым создать там окружение и все нужные упаковки json, а так же потом установить вебпак и прочие нужные модули как react dom и т.д. По сути можно будет спокойно из одного проекта запустить сразу бэкэнд и фронтэнд, и все по идеи должно отлично работать
работать это будет. Если вопрос был в этом. Но люди делят код на функции не просто так. Так же и на отдельные проекты его делят не просто так.
У меня проект не гигантский, поэтому если тут вопрос в не организованности и полном беспорядке, то проблем с этим не должно быть
Они и реакт могут "отреднерить"
Обсуждают сегодня