Если я делаю интернет-магазин, для чего мне использовать React или другую js библиотеку (Vue, Angular) в PHP фреймворках (Laravel, Yii) если там уже есть всё, что нужно, в том числе встроенный шаблонизатор, работа с моделями, ORM, роутинг и пр.?
Ajax и другие вспомогательные функции для форнт-енда можно и просто на js написать. По сути React предоставляет только удобную работу с данными и вьюшками. Но это также есть и в PHP фреймворках описанных выше.
Да, я понимаю как работает клиент и сервер. Но не думаю что react используют только для снятия нагрузки с сервера. Для интернет магазина могут быть какие-то ещё кейсы использования react, кроме как в корзине?
Можно полностью сделать интернет-магазин в виде SPA. Реакт (Vue, Angular) используют не для снятия нагрузки с сервера, а для реализации сложных интерфейсов.
Чтобы делать меньше серверных вызовов при работе пользователя. Банальная отметка чекбоксами в дереве (при клике на родителя устанавливается/снимается галочка у всех подчиненных + обновляется "три состояния флажка" у родителей) без vue, на чистом js, делается сложно. Всякое пересчитывание сумм при изменении количества и всё такое.
Фронтенд фреймворк удобно использовать в laravel, когда:
1) Если есть сложный интерфейс, который средствами фреймворка будет выглядеть очень громоздко и неподдерживаемо, а иной раз и нереализуемо;
2) Нужно задействовать чисто фронтенд разработчиков и обучение их всему бек фреймворку может занять определенное время.
Да и вообще удобно разделить бекенд на чисто API и фронтенд с клиентом, по этому API работающему. Это позволит добиться лучшей производительности, уменьшения сложности проекта, более удобной поддержки.
В современном мире веб-разработки backend (Laravel, Symfony, Native PHP etc.) используется для доставки и обработки данных. Backend не занимается отрисовкой шаблонов страниц - это работа frontend (React, Vue, Native JS). Кроме того, frontend умеет изящно работать с состоянием страниц (анимациями, обновлениями полей, подсчетами и т.п.)
При этом никто вам не мешает делать весь проект "по-старинке" на backend.