Пытаюсь разобраться с Redux, в каких случаях его применить. Я четко понимаю зачем он нужен, это отличное решение для обмена состоянием между любыми компонентами в приложении и для управления состоянием приложения.
По случаям использования не совсем понятно.
По идее это решение для обмена состоянием между не связанными компонентами, вроде списка товаров в корзине, который нужен и в шапке, и на конкретных страницах, и на странице любого товара, и в списке сопутствующих покупок.
По факту, я вижу что люди его используют как основное хранилище для вьюшек, даже если оно там вообще не нужно. Например, есть страница с результатами поиска фильмов, или просто страница каталога фильмов, и эти данные (что важно, динамические, и их всегда нужно перезагружать при входе на страницу) многие хранят именно в Redux-сторе, а не в локальном состоянии компонента (страницы).
Так вот, как вы определяете, когда вам нужен глобальный стор, а когда локальный на уровне компонента или роута?
>> По идее это решение для обмена состоянием между не связанными компонентами, вроде списка товаров в корзине, который нужен и в шапке, и на конкретных страницах, и на странице любого товара, и в списке сопутствующих покупок.
Для этого сейчас можно также использовать useContext хук. Вопросов становится всё больше!..)
Да, но Redux-интрументы будут утеряны, насколько я понимаю, либо придется вручную их адаптировать. Плюс Redux не дает создать вложенные состояния, насколько я понимаю, в отличие от контекста, которые можно вкладывать друг в друга.
abberati, спасибо! Интересно.
Мне вот тоже как-то уже привычнее и комфортнее работать с Redux.
И в тоже время на Хабре и т.д. продолжают выходить статьи на тему "бросайте Redux - useConrext решит все ваши проблемы"!)
abberati, присоединяюсь к Abr_ya, спасибо за ссылку :+1:
Действительно, отказавшись от инструмента всё-равно в результате получится велосипед. Нет смысла не использовать сразу готовое решение, не говоря про его клевые особенности, которые помогают в разработке.
Поговаривают, что редакс на самом деле немного устарел (для новых проектов — уже написаны тысячи тысяч систем, работающих на редаксе и разработчики со знанием редакса ещё долго будут востребованы). Есть более современные стейт-менеджеры, переосмыслившие опыт редакса — effector (production ready), reatom (только-только вышел в полноценный релиз). Для общего развития стоит попробовать оба.
А благодарность и +1 можно выражать кнопкой «нравится» под комментарием :3