Источник: Nuances of Programming Курс SkillFactory Frontend-разработчик. Получите перспективную творческую профессию в IT. Мужайтесь: из всей жути React ничто и близко не сравнится с этой. Обычно состояние обновляется в обработчиках событий. Но иногда его нужно изменить после отображения, например переменную состояния при изменении свойства. Этого не требуется, если: Но что делать, если все это не ваш случай? Обновлять состояние при изменении свойства в эффекте, как это делают опытные разработчики React? А вот и нет! В новой документации явно указывается, что эффект для этого не годится: с ним дочернее дерево отображается повторно, чего желательно избегать. Но какой ценой? Вместо него рекомендуется, по-моему, самый уродливый шаблон в React. Посмотрите сами: function CountLabel({ count }) {
const [prevCount, setPrevCount] = useState(count);
const [trend, setTrend] = useState(null);
if (prevCount !== count) {
setPrevCount(count);
setTrend(count > prevCount ? 'increasing' :