<영화 정보가 담긴 json파일 가져와 웹브라우저에 보이도록 하기>
App.js
1) json 파일 가져오기
*React 공부 4일차에서 정리했던 async/await 이용
await은 최상단 코드에서 사용 불가하지만, async()=>{ }로 감싼 코드 안에서는 사용할 수 있다.
json파일 fetch가 완료될때까지 await
-> fetch 완료된 파일을 .json()(promise 리턴함.) 함수 실행 완료할 때까지 await
-> const getMovies에 promise 객체 할당
2) loading중일때와 아닐 때
loading===true이면?
Loading... 글자 화면에 표시
loading===false이면?
map 함수를 이용해 각각의 movie 객체마다 <Movie /> component 실행
- Movie.json 파일에 json파일에서 불러온 정보 객체들을 전달해줘야 함 (props 지정).
- key는 React.js에서만, map안에서 component들을 render할 때 사용하는 것.(Movie.js 파일에선 key 지정 필요 x)
Movie.js
부모 component에서 <Movie /> component에 지정한 props들을 받아옴.-> ({coverImg, title, year, summary, genres})
받아온 props들을 html 태그들을 사용해 게시함.
genres는 array 자료형의 정보이므로, map을 사용해 <li> 형태로 게시함
- map안에서 component들을 render할 때 key값을 주는 것 잊지 말기!!
{genres.map((g)=>{
+) propTypes 지정하기
prop의 자료형 타입이 지정한 타입에서 벗어나면 경고 문구를 출력해줌. 의도치 않은 실수를 줄일 수 있음.
PropTypes import하기: import PropTypes from "prop-types";
{PropNames}:PropTypes.{자료형}(.isrequired)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
각 영화를 클릭하면, 영화의 세부정보를 보여주는 새로운 페이지로 전환하고 싶다면...?
React Router
React Router가 하는 일: 페이지 전환
Home router: 모든 영화를 보여줌
Movie router: 하나의 영화에 대한 세부정보를 보여줌.
*App.js는 앞으로 router들을 render할 것임.
'웹공부 > React' 카테고리의 다른 글
React 공부 8일차 (0) | 2023.08.21 |
---|---|
React 공부 7일차 (0) | 2023.08.18 |
React 공부 5일차 (0) | 2023.08.15 |
React 공부 4일차 (0) | 2023.08.13 |
React 공부 3일차 (0) | 2023.08.11 |