"scripts": {
"deploy": "gh-pages -d build", // gh-pages 실행
"predeploy" : "npm run build" // deploy 실행 시키면 자동으로 먼저 실행됨
},
{
, "homepage": "http://깃허브 유저 네임.github.io/깃허브 저장소 이름"
}
혹시 React router 6버전으로 진행시 gh-pages로 배포 후, 빈 화면이 나온다면 Route컴포넌트의 path경로 앞에 process.env.PUBLIC_URL을 추가해서 수정하기
Route path={`${process.env.PUBLIC_URL}/`} element={< Home />}
ex) path={`${process.env.PUBLIC_URL}/movie/:id`}
function Home() {
const [loading, setLoading] = useState(true);
const [movies, setMovies] = useState([]);
const getMoives = async () => {
const response = await fetch("https://yts.mx/api/v2/list_movies.json?minimum_rating=8.5&sort_by=year");
const json = await response.json();
setMovies(json.data.movies);
setLoading(false);
};
useEffect(() => {
getMoives();
}, []);
return (
<div>
{loading ? (
<h1>Loading...</h1>
) : (
<div>
{movies.map((item) => ( //Movie Component 따로 있음
<Movie
id={item.id}
key={item.id}
coverImg={item.medium_cover_image}
title={item.title}
summary={item.summary}
genres={item.genres}
/>
))}
</div>
)}
</div>
);
헷갈릴 땐 자주 봐야지
function fetchCoins() {
return fetch("url").then((response) => response.json());
}
const getMoives = async () => {
const response = await fetch("url");
const json = await response.json();
};
// async 사용하는 함수 만들고 useEffect 안에 넣기
useEffect(() => {
getMoives();
}, []);