React로 영화 웹서비스 만들기(클론코딩) - 4
노마드코드님의 유튜브를 즐겨보는 구독자로서, 무료로 풀어두신 클론코딩 강의를 들어보고자 한다:)
드디어 본격적인 react 시작…!!
오늘은 component와 props에 대해 알아볼 것이다🤩 🆂🆃🅰🆁🆃~~~~~
React로 영화 웹서비스 만들기
저번편은 여기로
Reusable components with JSX + Props🐾
Reusable
Potato.js 파일을 지우고 App.js에 새로 Potato를 작성해볼 것이다. ༼;´༎ຶ ༎ຶ༽
import React from "react";
function Potato(){
return <h1>I Like Potato</h1>
}
function App() {
return (
<div>
<h1>Hello!!!!</h1>
<Potato />
</div>);
}
export default App;
app.js를 이렇게 수정해주면 Potato 파일이 없어도 실행이 된다.
react는 재사용 가능한 component를 만들 수 있다.
이말인즉슨 우리가 만든 Potato component도 얼마든지 💥반복사용 가능💥이라는 거다.
component->component / children component
우선은 component 이름을 Food로 수정하고, 거기에 name을 설정한다.
function App() {
return (
<div>
<h1>Hello!!!!</h1>
<Food fav="kimchi" />
</div>);
}
🌺이렇게요…!
name를 적은 코드는 HTML 식으로 아래와 같은 형식이라고 볼 수 있다.
실제로 굉장히 유사한 형태를 띄고 있다…!
<div class="kimchi"></div>
한마디로 우리가 한 건 food component에
fav라는 property의 value를 kimchi로 준 것!
jsx(HTML + JavaScript) + props
props란, Immutable Data 즉, 변하지 않는 데이터로,
상위(부모) 컴포넌트에서 하위(자식) 컴포넌트로 데이터를 넘겨줄 때 사용한다.
자, 그럼 이제 저 props로 무엇을 할까??
react magic에서 전달한 props를, react가 가져가도록 할 것이당.
<Food
fav="kimchi"
something={true}
hehe = {["hi", "반가워요", 1, 2, 3, true]} />
food에 여러가지 props를 만들고, component로 전달해준다.
function Food(props){
console.log(props);
return <h1>I Like Potato</h1>
}
전달한 props를 console로 찍으면 아래와 같이 찍힌다.🔥🔥🔥
function Food({fav}){
return <h1>I Like {fav}</h1>
}
인자를 전달해줄 때는 이렇게도 보낼 수 있다. WOW…!🤭
props안의 fav의 value값이 보내진다. ㅎㅎ
화면에도 당연히 찍히겠지?!?!?!
이번에는 여러개 만들어줄거다😎
<Food fav="kimchi" />
<Food fav="meat" />
<Food fav="coffee" />
<Food fav="cake" />
바로 이렇게 jsx(HTML + JavaScript) + props의 힘으로 모두 재사용 가넝…!!
매우 간단하다!✌️
🔄component에 많은 props가 있고, 우리는 그걸 충분히 재활용할 수 있다.🔄