티스토리 뷰
props는 component의 외부에서 사용하는 입력 값
App.js
import logo from './logo.svg';
import './App.css';
function Header(props){//컴포넌트 생성(대문자로 시작)
return <header>
<h1><a href="/">{props.title}</a></h1>
</header>
}
function Nav(props){
const lis =[]
for(let i=0; i<props.topics.length; i++){ //topics의 개수만큼 반복
let t = props.topics[i];
lis.push(<li><a href={'/read/'+t.id}>{t.title}</a></li>) //lis에 하나씩 넣기, 동적으로 바뀔대상이 있으면 중괄호 사용
}
return <nav>
<ol>
{lis}
</ol>
</nav>
}
function Article(props){//props를 사용시 함수 외부에서 입력값으로 사용가능
return <article>
<h2>{props.title}</h2>
{props.body}
</article>
}
function App() {
const topics = [//topics를 배열 설정
{id:1, title:'html', body:'html is ...'},
{id:2, title:'css', body:'css is ...'},
{id:3, title:'javascript', body:'javascript is ...'},
]
return (
<div>
<Header title="WEB"></Header>
<Nav topics={topics}></Nav>
<Article title="Welcome" body="Hello, WEB"></Article>
</div>
);
}
export default App;
위의 코드대로 입력 시 console 창에는 이런 경고 문이 뜬다
동적으로 만들어진<li>태그들은 반복문 안에서는 고유해야 하므로 구별되는 key값을 지정해준다.
import logo from './logo.svg';
import './App.css';
function Header(props){//컴포넌트 생성(대문자로 시작)
return <header>
<h1><a href="/">{props.title}</a></h1>
</header>
}
function Nav(props){
const lis =[]
for(let i=0; i<props.topics.length; i++){ //topics의 개수만큼 반복
let t = props.topics[i];
lis.push(<li key={t.id}><a href={'/read/'+t.id}>{t.title}</a></li>) //lis에 하나씩 넣기, 동적으로 바뀔대상이 있으면 중괄호 사용
//<li>태그가 구별되도록 key값을 고유값으로 설정
}
return <nav>
<ol>
{lis}
</ol>
</nav>
}
function Article(props){//props를 사용시 함수 외부에서 입력값으로 사용가능
return <article>
<h2>{props.title}</h2>
{props.body}
</article>
}
function App() {
const topics = [//topics를 배열 설정
{id:1, title:'html', body:'html is ...'},
{id:2, title:'css', body:'css is ...'},
{id:3, title:'javascript', body:'javascript is ...'},
]
return (
<div>
<Header title="WEB"></Header>
<Nav topics={topics}></Nav>
<Article title="Welcome" body="Hello, WEB"></Article>
</div>
);
}
export default App;
key라는 약속된 props 줌으로 정확하게 동작하도록 한다!
'개발공부 > React' 카테고리의 다른 글
7. State (0) | 2022.04.23 |
---|---|
6. 이벤트 (0) | 2022.04.23 |
4. Component 만들기 (0) | 2022.04.23 |
3. 소스 코드 수정 방법 (0) | 2022.04.23 |
2. 실습 환경 구축 (0) | 2022.04.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코드스테이츠
- SEB 43
- 회고
- 브루드포스
- SEB 43기
- 백준
- 코테
- Redux
- React quill
- 프론트엔드
- 그리디 알고리즘
- SEB43
- SEB43기
- 프로젝트
- 다이나믹 프로그래밍
- dfs
- 인적성
- Python
- 개인 프로젝트
- 프리프로젝트
- seb
- BFS
- 감정 일기장
- til
- 감정일기장
- 기술면접
- 프로그래머스
- dictionary
- useContext
- 스택오버플로우
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함