Использование Redux или аналогичного инструмента глобального управления состоянием (например, Context API) может быть одним из решений для этого. С Redux вы сможете сохранить данные API в глобальном состоянии, а затем в своем методе componentDidMount
вы можете запустить запрос Ax ios только в том случае, если ваше соответствующее значение глобального состояния пусто.
Другое решение, связанное с Redux, - иметь вездесущий компонент макета, такой как панель навигации, который будет отвечать за запрос всех данных API. Если вы разместите свою панель навигации за пределами React Router, этот компонент не отключится, когда React Router переведет вас на другую страницу. Используя этот метод, если вы хотите загрузить соответствующие данные при первом доступе к странице, но сохранить их на протяжении оставшейся части сеанса, у вас может быть useEffect
с зависимостью от useLocation().pathname
(от response -router-dom), который загружает данные API, хранит их глобально и запрашивает указанные данные только в том случае, если их еще нет.
Еще одним преимуществом использования глобального управления состоянием является то, что ваш код HTTP в в большинстве случаев они будут выделены из компонента и организованы в папку «действия» определенного типа, что упростит управление всем.