4. props
2022. 7. 27. 12:52ㆍ개발공부/리액트
https://www.youtube.com/watch?v=t9e3hMJ_s-c&list=PLuHgQVnccGMCOGstdDZvH41x0Vtvwyxu7&index=5
저번 포스트에서 컴포넌트를 만들었다.
컴포넌트는 props라는 파라미터를 받을 수 있다. 컴포넌트에 파라미터로 넘기는 props의 이름은 아무렇게 지어도 되지만 일반적으로 "props"라고 이름을 정한다고 한다.
//App.js
function App() {
const topics = [
{id:1, title:'html', body:'html os ...'},
{id:2, title:'css', body:'css os ...'},
{id:3, title:'js', body:'js os ...'},
]
return (
<div>
<Header title="REACT"></Header>
<Nav topics={topics}></Nav>
<Article title="Welcome" body="Hello, WEB"></Article>
</div>
);
}
각 컴포넌트 뒤에 title, topics, title, body 이런 것들이 다 props로 각각 컴포넌트에 파라미터로 넘어간다.
//App.js
function Header(props) {
return <header>
<!--
<h1><a href="/">WEB</a></h1>
-->
<h1><a href='/'>{props.title}</a></h1>
</header>
}
function Nav(props) {
const lis = []
for(let i = 0; i<props.topics.length; i++) {
let t = props.topics[i];
lis.push(<li key={t.id}><a href={'/read/'+ t.id}>{t.title}</a></li>)
}
return <nav>
<ol>
<!--
<li><a href="/read/1">html</a></li>
<li><a href="/read/2">css</a></li>
<li><a href="/read/3">js</a></li>
-->
{lis}
</ol>
</nav>
}
function Article(props) {
return <article>
<!--
<h2>Welcome</h2>
Hello, WEB
-->
<h2>{props.title}</h2>
{props.body}
</article>
}
...
props를 출력하기 위해서는 반드시 { } 를 사용해야한다. 만약 사용하지 않으면 props.title 이렇게 웹에 나타난다.
props는 object라서 props 뒤에 . 을 붙이고 App 함수에서 지정한 이름을 쓰면 그 값을 불러 올 수 있다.
nav와 같이 여러 가지 요소를 출력할 때는 리스트를 만들고 for문을 돌면서 하나씩 추가한 후 그 리스트를 찍어주면 된다.
'개발공부 > 리액트' 카테고리의 다른 글
6. state (0) | 2022.07.28 |
---|---|
5. event (0) | 2022.07.28 |
3. 컴포넌트 만들기 (0) | 2022.07.26 |
2. 소스 코드 수정하기 (0) | 2022.07.26 |
1. 리액트 개발환경 구축하기 (0) | 2022.07.26 |