티스토리 뷰
<Header> component의 이벤트 기능 넣기
onChangeMode prop에 함수 호출
App.js
import logo from './logo.svg';
import './App.css';
function Header(props){//컴포넌트 생성(대문자로 시작)
return <header>
<h1><a href="/" onClick={(event)=>{ //event객체를 첫번째 파라미터로
event.preventDefault(); //<a>태그 의 기본동작 방지-> reload 되지 않게
props.onChangeMode(); // alert 호출
}}>{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" onChangeMode={()=>{ // onChangeMode prop값으로 함수 호출, function() == ()=>
alert('Header');
}}></Header>
<Nav topics={topics}></Nav>
<Article title="Welcome" body="Hello, WEB"></Article>
</div>
);
}
export default App;
해당 코드 변경 후
WEB 클릭 시 화면 전환 없이 설정한 함수 호출
<Nav> 클릭 시 각각의 id 띄우게 하기
App.js
import logo from './logo.svg';
import './App.css';
function Header(props){//컴포넌트 생성(대문자로 시작)
return <header>
<h1><a href="/" onClick={(event)=>{ //event객체를 첫번째 파라미터로
event.preventDefault(); //<a>태그 의 기본동작 방지-> reload 되지 않게
props.onChangeMode(); // alert 호출
}}>{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 id={t.id} href={'/read/'+t.id} onClick={(event)=>{ //id값을 부여해주기
event.preventDefault();
props.onChangeMode(event.target.id); //event를 동작시킨 태그의 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" onChangeMode={()=>{ // onChangeMode prop값으로 함수 호출, function() == ()=>
alert('Header');
}}></Header>
<Nav topics={topics} onChangeMode={(id)=>{ //id값을 입력받는 함수 호출
alert(id);
}}></Nav>
<Article title="Welcome" body="Hello, WEB"></Article>
</div>
);
}
export default App;
코드 변경 후
<Nav>태그 클릭 시 id의 값과 동일한 값이 나옴
'개발공부 > React' 카테고리의 다른 글
8. Create (0) | 2022.04.23 |
---|---|
7. State (0) | 2022.04.23 |
5. Props (0) | 2022.04.23 |
4. Component 만들기 (0) | 2022.04.23 |
3. 소스 코드 수정 방법 (0) | 2022.04.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- dictionary
- 프로그래머스
- SEB 43
- SEB43
- 감정 일기장
- 인적성
- 스택오버플로우
- 프리프로젝트
- SEB43기
- 감정일기장
- 프로젝트
- useContext
- 코테
- 브루드포스
- React quill
- 그리디 알고리즘
- 백준
- til
- BFS
- 다이나믹 프로그래밍
- seb
- Redux
- SEB 43기
- 기술면접
- 회고
- dfs
- 개인 프로젝트
- Python
- 프론트엔드
- 코드스테이츠
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함