import { useState, useEffect } from 'react';
function useFetch(callback, url, option = { method: 'GET' }) {
const [loading, setLoading] = useState(true);
const fetchInitialData = async () => {
const response = await fetch(url, option);
const data = await response.json();
callback(data);
setLoading(false);
};
useEffect(() => {
fetchInitialData();
}, []);
return loading;
}
export default useFetch;
초기 데이터를 가져 올 때 사용 할 수 있다.
매개변수 callback 값은 component에 정의 된 setState 함수를 인자로 전달 받는다.
// example
const Component = () => {
const [gameData, setGameData] = useState(null);
useEffect(() => {
useFetch(setGameData, URL);
}, []);
}