Всю жизнь разрабатывал front-end и вот решил взяться за серверную часть. Но не могу составить представление механизма работы связки с React. То есть допустим у меня есть работающее приложение - список задач. Я храню добавленные задачи в Redux, а теперь мне нужно сохранять их в базу данных. То есть теперь надо сохранять в два места, а при загрузке страницы дополнительно получать в Redux из базы? И не понятно в каком порядке разрабатывать, можно параллельно работать с сервером из webpack или сначала написал фронт, сделал заготовки под запросы к серверу, потом собрал бандл залил на сервер и там работаешь с серверной частью?
Связь с бекендом по REST API. Отправляете запрос, получаете ответ. Все просто.
Вообще список задач можно и в localstorage сохранять.
Но если решили сохранять в базу, то примерно так должно происходить сохранение задач:
1. Пользователь заполнил форму и нажал "Добавить"
2. POST запрос на сервер
3. В случае успеха ответ и сохранение данных в store redux
4. список обновляется и задача отображается в интерфейсе
Если нет эндпоинтов на сервере можно написать заглушки на фронте, например, инъекцию липовых данных через connect.
Или можно сразу написать эндпоинты на сервере. Если работаешь один можно использовать оба варианта. Я обычно сразу пишу эндпоинты.
Бандл в режиме разработки собирать не надо, webpack dev server его пересобирает налету при каждом изменении. Советую настроить hot reload.
Так же в современных приложениях часто реализуют server side rendering. Тут масса своих тонкостей и об этом лучше почитать соответствующие статьи.
А где располагать сервер при разработке на webpack. То есть есть ли возможность эмулировать базу данных на клиенте или лучше поднять сервер на хостинге и слать туда запросы?
Даниил Сугоняев, при разработке лучше сервер локально расположить. Конфиги в dev режиме и prod могут быть любые. Тоесть dev сервер может стучаться в базу куда угодно. Часто делают отдельный frondend сервер для клиента и отдельный API.
На webpack dev сервер можно прокси на удаленный поставить. То есть клиент и ресурсы будут локальные, а API удаленный.
Вариантов много.