async await로 fetch하여 데이터 받아오기
import Link from "next/link";
import { useRouter } from "next/router";
export default function NavBar() {
const router = useRouter();
return(
<nav>
{}
<img src="/vercel.svg" />
<div>
<Link href='/'>
<a className={router.pathname==='/' ? 'active' : ''}>Home</a>
</Link>
<Link href='/about'>
<a className={router.pathname==='/about' ? 'active' : ''}>About</a>
</Link>
</div>
</nav>
)
}
import { useEffect, useState } from "react";
import Seo from "./Seo"
const API_KEY = '10923b261ba94d897ac6b81148314a3f';
export default function Home() {
const [movies, setMovies] = useState([]);
useEffect(() => {
(async () => {
const {results} = await (await fetch(`https://api.themoviedb.org/3/movie/popular?api_key=${API_KEY}`)).json();
setMovies(results);
})();
}, []);
return (
<div>
{}
<Seo title='Home' />
{}
{!movies && <h4>Loading...</h4>}
{}
{}
{}
{movies?.map(movie => (
<div key={movie.id}>
<h4>{movie.original_title}</h4>
</div>))
}
</div>
)
}
즉시 실행 함수
- async부터 감싸고 끝나자마자 실행
- res안에 results가 있어서 비구조할당
globals.css에서 body를 휴대폰 화면처럼 만들기
// globals.css
body {
max-width: 520px;
width: 100%;
margin: 0 auto;
}
// 추가