2021. 4. 9. 17:27ㆍProjects/React.js로 영화 웹 서비스 만들기
#2.1 Reusable Components with JSX + Props(컴포넌트에서 정보를 보내고 사용하는 법)
🍨 이번시간에는 컴포넌트에서 정보를 보내고, 정보를 사용하는 방법을 알아볼 것이다.
우리는 컴포넌트를 file을 이동하면서 작성하고 싶지 않기 때문에 App.js에서 컴포넌트를 작성하는 작업을 할 것이다.
import React from "react";
function Potato(){
return <h1>I like Potato.</h1>;
}
function App() {
return (
<div className="App">
<h1>hello!!</h1>
<Potato />
</div>
);
}
export default App;
↑ App.js
이렇게 App.js 파일 하나에서 Potato 함수를 만들어서 사용할 수 있다.
🍨 JSX 에서는 컴포넌트에 정보를 보낼 수 있다! → 재사용성
JSX에서 두번째로 이해해야 하는 것은 component에 정보를 보낼 수 있다는 점이다.
react가 멋진 이유는 재사용 가능한 component를 만들 수 있다는 점이다.
이 말은 component를 계속해서 반복해서 사용할 수 있는 것이다.
저게 Potato가 아니라 Movie라고 생각해보자.
영화 20편이 있다고 했을 때 <Movie />를 20번 복사 붙여넣기 하는 식으로 사용하지 않는다. 동적으로 사용한다는 것이다.
이제 컴포넌트에 정보를 보내는 방법을 알아볼 것이다. 우선 Potato -> Food로 이름을 바꾼다.
이 어플리케이션(App)에서 food component로 정보를 보내고 그런 다음에 food component에서 그 정보를 어떻게 사용할지에 대해 배울 것이다.
🍨App에서 food 컴포넌트로 정보를 보내는 방법
function App() {
return (
<div className="App">
<h1>hello!!</h1>
<Food favorite="kimchi" />
</div>
);
}
다음과 같이 프로퍼티 = "값" 이렇게 넣어주면 된다.
HTML을 아는 사람이라면 이 동작 방법이 HTML이랑 되게 닮았다는 것을 알 수 있을 것이다.(마치 id나 class같은)
favorite이라는 이름의 property를 kimchi라는 value로 준 것이라고 생각하면 된다. 프로퍼티와 값에는 어떠한 것도 올 수 있다고 생각하면 된다.
property : favorite
value : kimchi
function App() {
return (
<div className="App">
<h1>hello!!</h1>
<Food favorite="kimchi" something={true} hello={["hello",1,2,3,4]}/>
</div>
);
}
어떤 형태라도 값으로 올 수 있다.
🍨food 컴포넌트에서 정보를 사용하는 방법
app에서 정보를 보냈으니 그 정보를 사용하여야한다.
import React from "react";
function Food(props){
console.log(props);
return <h1>I like Potato.</h1>;
}
function App() {
return (
<div className="App">
<h1>hello!!</h1>
<Food favorite="kimchi" something={true} hello={["hello",1,2,3,4]}/>
</div>
);
}
export default App;
우리가 작성한 프로퍼티들을 Food의 인자로 넣을 수 있다.
이것을 props라고 그냥 해놓고 console에 확인해보면, 다음과 같이 props는 이렇게 확인이된다.
function Food(props){
return <h1>I like {props.favorite}</h1>;
}
우리는 저렇게 중괄호를 가지고 우리가 받아온 데이터를 사용할 수 있다.
⭐⭐⭐리액트에서 그냥 쓰면 html 코드 혹은 텍스트가 되고 중괄호 안에 쓰면 자바스크립트가 된다.
function Food({favorite}){
return <h1>I like {favorite}</h1>;
}
ES6의 문법을 이용해서 (객체 비구조화 할당) 더 간단하고 멋지게 사용할 수도 있다.
function Food({favorite}){
return <h1>I like {favorite}</h1>;
}
function App() {
return (
<div className="App">
<h1>hello!!</h1>
<Food favorite="Kimchi" />
<Food favorite="Ramyeon" />
<Food favorite="Tteokbokki" />
<Food favorite="Chukumi" />
</div>
);
}
이렇게 해서 우리는 코드를 재사용할 수 있다.
'Projects > React.js로 영화 웹 서비스 만들기' 카테고리의 다른 글
#3.0 Class Components and State (0) | 2021.04.12 |
---|---|
#2.4 Protection with PropTypes (0) | 2021.04.12 |
#2.2 ~ 2.3 동적 데이터를 추가하는 방법 / map 함수 이용 (0) | 2021.04.12 |
#2.0 Creating your first React Component (컴포넌트에 대해 알아보기) (0) | 2021.04.09 |
1.0 ~ 1.2 create-react-app / 깃허브 만들기/ react가 동작하는 방법 (0) | 2021.04.07 |