Хотя вопрос требует мнения, я собираюсь оставить свой ответ.В этом отношении нет стандартной передовой практики.Это сводится к удобству и основным правилам вашей команды, если код пишут несколько человек.
Я довольно часто использую Redux.Однако я не буду воздерживаться от использования локального состояния в компонентах.
Для обработки форм, таких как обработчики ввода onChange, требуется локальное состояние.Использовать глобальное состояние для обработчиков onChange нецелесообразно.
Повторно используемый компонент использует локальное состояние.Опять же, все сводится к тому, является ли возможность повторного использования технической возможностью повторного использования или повторным использованием в бизнесе.Если вы разрабатываете пользовательский компонент полосы прокрутки, используйте локальное состояние.Однако, если вы используете форму комментария, которая используется повсеместно в вашем приложении, используйте глобальное состояние.
Я предпочитаю, чтобы большая часть материала находилась в глобальном состоянии.Я также использую Redux Thunk.В избыточном транке можно получить доступ к глобальному состоянию внутри функции thunk.Это очень полезно, поскольку позволяет избежать зависимости от пропуска / контекста.
Я храню некоторые простые вещи в локальном состоянии - например, показываю / скрываю некоторые вещи.Я не против дождаться обещаний, которые нужно выполнить, прежде чем скрывать некоторые вещи с использованием локального состояния.
В целом, решение использовать глобальное состояние против локального состояния в первую очередь основано на удобстве.Там нет стандартных правил, кроме того, что вам и вашей команде удобно.
React - это способ декларативно иметь дело с пользовательским интерфейсом.Есть некоторые правила фреймворка, такие как состояние, реквизит, контекст.Разработчику остается сделать декларативный и производительный интерфейс на основе этих примитивов.То, как разработчик делает это, не имеет значения, если код поддерживается и понятен другим.