Redux в первую очередь предназначен для «состояния приложения». То есть все, что связано с логикой вашего приложения. Представление, построенное поверх него, является отражением этого состояния, но оно не обязательно должно использовать исключительно этот контейнер состояния для всего, что он делает.
Просто задайте следующие вопросы: важно ли это состояние для остальной части приложения? Будут ли другие части приложения вести себя по-другому в зависимости от этого состояния? Во многих незначительных случаях это не так. Возьмите раскрывающееся меню: тот факт, что оно открыто или закрыто, вероятно, не повлияет на другие части приложения. Так что подключить его к вашему магазину, вероятно, будет излишним. Это, безусловно, допустимый вариант, но на самом деле не приносит вам никаких преимуществ. Вам лучше использовать this.state
и закончить день.
В вашем конкретном примере, влияет ли цвет этой кнопки на другие части приложения? Если это какой-то глобальный переключатель включения / выключения для основной части вашего приложения, он определенно относится к магазину. Но если вы просто переключаете цвет кнопки при нажатии на кнопку, вы можете оставить состояние цвета локально определенным. Действие нажатия кнопки может иметь другие эффекты, требующие отправки действия, но это отличается от простого вопроса о том, какого цвета оно должно быть.
В общем, старайтесь, чтобы состояние вашего приложения было как можно меньше. Не нужно туда все запихивать . Делайте это, когда вам нужно, или есть большой смысл держать что-то там. Или если это облегчит вашу жизнь при использовании Dev Tools. Но не переусердствуйте с его важностью.