#4.2 Styling the Movies
2021. 4. 14. 20:18ㆍProjects/React.js로 영화 웹 서비스 만들기
728x90
반응형
#4.2 Styling the Movies
🍺 이번 시간에는 코드를 좀 예쁘게 바꿔볼 것이다.
🍺 HTML 작업하기
import React from "react";
import axios from "axios";
import Movie from "./Movie";
class App extends React.Component{
state = {
isLoading: true,
movies: []
};
getMovies = async () => {
const {data: {data: {movies}}} = await axios.get("https://yts-proxy.now.sh/list_movies.json?sort_by=rating");
this.setState({movies, isLoading: false});
}
componentDidMount(){
this.getMovies();
}
render(){
const {isLoading, movies} = this.state;
return (
<section class="container">
{isLoading ? (
<div class="loader">
<span class="loader__text_">Loading...</span>
</div>
)
: (
<div class="movies">
{movies.map((movie) => (
<Movie
key={movie.id}
id={movie.id}
year={movie.year}
title={movie.title}
summary={movie.summary}
poster={movie.medium_cover_image}
/>
))}
</div>
)}
</section>
);
}
}
export default App;
✅App.js
import React from "react";
import PropTypes from "prop-types";
function Movie({id, year, title, summary, poster}){
return (
<div class="movie">
<img src={poster} alt={title} title={title} />
<div class="movie__data">
<h3 class="movie__title">{title}</h3>
<h5 class="movie__year">{year}</h5>
<p class="movie__summary">{summary}</p>
</div>
</div>
)
};
Movie.propTypes = {
id : PropTypes.number.isRequired,
year: PropTypes.number.isRequired,
title: PropTypes.string.isRequired,
summary: PropTypes.string.isRequired,
poster: PropTypes.string.isRequired
};
export default Movie;
✅Movie.js
이렇게 하면 잘 동작한다.
이렇게 잘 보인다.!!
🍺 CSS 작업하기
create-react-app 때문에 css통합이 매우 쉽다.
App.css와 Movie.css 파일을 만들고, App.js에서는 App.css를 import 하고, Movie.css에서는 Movie.css를 import 해온다. 그리고 작성한다.
import "./App.css";
▲ App.js
import "./Movie.css";
▲ Movie.js
이 수업은 css 수업이 아니기 때문에, css 작업을 같이 하지는 않는다.
(스타일 컴포넌트에 대한 강의는 리액트 스타일? Styled Components 를 왜 배우는가! 에서 들을 수 있다.)
728x90
반응형
'Projects > React.js로 영화 웹 서비스 만들기' 카테고리의 다른 글
#4.3 Adding Genres (0) | 2021.04.14 |
---|---|
#4.1 Rendering the Movies (0) | 2021.04.14 |
#4.0 Fetching Movies from API (0) | 2021.04.14 |
#3.3 Planning the Movie Component (0) | 2021.04.12 |
#3.2 Component Life Cycle (0) | 2021.04.12 |