В каких случаях использовать Redux?

Друзья, доброе утро,

Пытаюсь разобраться с Redux, в каких случаях его применить. Я четко понимаю зачем он нужен, это отличное решение для обмена состоянием между любыми компонентами в приложении и для управления состоянием приложения.

По случаям использования не совсем понятно.

По идее это решение для обмена состоянием между не связанными компонентами, вроде списка товаров в корзине, который нужен и в шапке, и на конкретных страницах, и на странице любого товара, и в списке сопутствующих покупок.

По факту, я вижу что люди его используют как основное хранилище для вьюшек, даже если оно там вообще не нужно. Например, есть страница с результатами поиска фильмов, или просто страница каталога фильмов, и эти данные (что важно, динамические, и их всегда нужно перезагружать при входе на страницу) многие хранят именно в Redux-сторе, а не в локальном состоянии компонента (страницы).

Так вот, как вы определяете, когда вам нужен глобальный стор, а когда локальный на уровне компонента или роута?
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
bingo347
@bingo347
Бородатый программер
В приложении должен быть один и только один источник правды. На роль такого источника очень хорошо подходят хранилища состояний, предоставляемые такими библиотеками, как redux/mobx/vuex/...
Если в приложении несколько источников правды, то раньше или позже между ними возникнет конфликт, который приведет к трудноотлаживаемым багам.

Говоря совсем простым языком, пока некое состояние модуля/компонента сугубо локально, то есть не влияет ни на что за пределами этого компонента - его можно (а зачастую и нужно) хранить локально, но при этом обязательно абсолютно соблюдать инкапсуляцию этого состояния, ибо как только оно "протекло" во вне, оно перестает быть локальным и становится общим, а там уже и до нескольких источников правды недалеко.
Хранилище состояния же решает эту проблему, становясь тем самым единственным источником правды, которому все могут доверять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
iBolit.pro Москва
от 170 000 до 250 000 руб.
Myagi Минск
от 3 000 до 4 000 usd.
ManyChat Москва
от 180 000 руб.