Redux в першу чергу призначений для "стану програми". Тобто все, що пов’язано з логікою вашого додатка. Погляд, побудований поверх нього, є відображенням цього стану, але не повинен використовувати виключно цей контейнер стану для всього, що він робить.
Просто задайте такі запитання: чи важливий цей стан для решти програми? Чи будуть інші частини програми поводитися інакше залежно від цього стану? У багатьох незначних випадках цього не буде. Візьміть спадне меню: той факт, що він відкритий або закритий, ймовірно, не вплине на інші частини програми. Отже, підключити його до вашого магазину, мабуть, надмірно. Це, звичайно, дійсний варіант, але насправді не приносить вам ніяких переваг. Вам краще використовувати this.state
і називати це на день.
У вашому конкретному прикладі, чи перемикається колір цієї кнопки, щоб щось змінити в інших частинах програми? Якщо це якийсь загальний перемикач увімкнення / вимкнення для більшої частини вашої програми, він точно належить магазину. Але якщо ви просто перемикаєте колір кнопки, натискаючи кнопку, ви можете залишити стан кольору локально визначеним. Дія натискання кнопки може мати інші ефекти, що вимагають відправки дії, але це окремо від простого питання, якого кольору вона повинна бути.
Загалом, намагайтеся, щоб стан вашої програми був якомога меншим. Вам не потрібно засовувати все туди. Робіть це, коли потрібно, або є сенс тримати щось там. Або якщо це полегшує вам життя під час використання Dev Tools. Але не варто занадто перевантажувати його важливість.