#reactjs #react-hooks #use-effect
#reactjs #реагирующие хуки #использование-эффект
Вопрос:
Я хочу выполнить вызов fetch api только один раз для всего приложения.
Итак, хорошая ли идея использовать useEffect hook внутри app.js на самом деле возможно ли это сделать.
Пожалуйста, предложите.
Спасибо
Ответ №1:
Конечно, вам просто нужно иметь пустой массив в качестве второго аргумента в useEffect.
export default function App() {
useEffect(() => {
**Your API call**
}, []);
return(**JSX you want to return**);
}
Примечание: это будет вызывать API каждый раз, когда монтируется компонент приложения.
Ответ №2:
Трудно понять, чего вы пытаетесь достичь из того, что вы написали. Если вы пытаетесь получить какие-то основные данные, необходимые для запуска приложения, вы определенно можете использовать эффект. Позаботьтесь о том, чтобы он запускался только один раз.
Поскольку я лично предпочитаю использовать redux, и я хорошо знаком с этим шаблоном, я бы использовал действие для извлечения данных и инициализации приложения, используя библиотеку асинхронных действий (thunk, saga, observables и т.д.). Вы бы все равно вызвали useEffect
в App.js для отправки действия инициализации, но запрос будет запущен только в том случае, если данные еще не присутствуют в состоянии.