useEffect와 useState를 이용해서 api 호출해 화면에 표시한다.
useState를 통해 loading의 상태를 업데이트하고,
movies의 목록 상태를 업데이트한다.
async await를 통해 특정 api url의 response를 json을 가져오고 그것을 setMovies에 넣어준다.
movies.map을 통해 화면에 가져온 데이터에서 title을 화면에 뿌려준다.
import { useEffect, useState } from "react";
function App() {
const [loading, setLoading] = useState(true);
const [movies, setMovies] = useState([])
const getMovies = async() => {
const response = await fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=9&sort_by=year`)
const json = await response.json()
setMovies(json.data.movies);
setLoading(false)
}
useEffect(() => {
getMovies();
}, [])
console.log(movies)
return (
<div>
{loading ? <h1>Loading...</h1> : movies.map((movie) => <div key = {movie.id}>{movie.title}</div>)}
</div>
);
}
export default App;
'개발 > react' 카테고리의 다른 글
Styled components 상속받기를 통해 중복을 줄인다! (0) | 2022.11.12 |
---|---|
Styled components로 css를 적용하면 더 편리하다! (0) | 2022.11.12 |
react의 useEffect는 api call 할 때 많이 사용!! (0) | 2022.09.26 |
react에서 to-do-list 만들기는 바닐라 js에 비해 너무 쉬움!! (0) | 2022.09.26 |
react array에서 [a, ...b]의 사용!! (0) | 2022.09.26 |