Здравствуйте. Я изучаю react и redux и хочу разобраться и понять для себя, где нужен redux, а где нет.
Придумал для себя простенькое задание. Есть список товаров, где есть кнопка Купить, и есть Корзина, куда перемещаются выбранные товары и отображаются списком.
Как я вижу решение:
Можно создать общий компонент, который будет иметь state, который будет передаваться компонентам товаров и корзины.
Но а если расширить пример, добавить туда другие блоки(рекламу, слайдер, галерею и прочее все), и может получиться так, что товары и корзина должны находиться в разных частях сайта, в итоге их нельзя будет помещать в один общий компонент.
Здесь уже на помощь приходит redux или я что-то упустил и без него можно как то обойтись в данном примере?
redux нужен для глобальных данных, общего состояния приложения (корзина товаров вполне подходит), для всего остального есть мас.. локальный стейт.
--
без него можно обойтись в твоем примере, если заврапить все компоненты которым нужна корзина в контейнер и передавать пропом во все ветки внутренних компонентов, как ты уже понял это стремно, не красиво и есть грабли вроде таких, что нам так же придется кидать в пропы и обработчики событий с общего контейнера.
davidnum95, Это становится более сложным при поддержке больших приложений, по этому я советую сначала нормально понять возможность и ограничения локального стейта, а потом уже глобального, поскольку в больших приложениях возникает множество зависимостей, которые динамически вытягиваются и за которыми так же нужно следить, вычищая из памяти когда они уже ненужны. Скажем 70% того, что я писал на этой связке я вообще мог обойтись без редакса, но ставил его потому, что удобно.