sm 기술 블로그

5강. 이벤트 본문

리액트

5강. 이벤트

sm_hope 2022. 8. 30. 13:33

어떤 이벤트가 발생했을 때 어떤 작업을 처리하는 일

 

import './App.css';

function Header(props){
  return <header>
    <h1><a href="/" onClick={(event) => {
      event.preventDefault();
      props.onChangeMode();
    }}>{props.title}</a></h1>
  </header>
}

... 생략 ...

function App() {

... 생략 ...

  return (
    <div className="App">
      <Header title = "WEB" onChangeMode={()=>{
        alert('Header');
      }}></Header>
      <Nav topics={topics}></Nav>
      <Article title="welcome" body="Hello"></Article>
    </div>
  );
}

export default App;

먼저 상위 컴포넌트 부터 확인해보자.

onClick의 이벤트가 발생하면 ,

      event.preventDefault();
      props.onChangeMode();

다음과 같은 함수가 실행된다.

 

event.preventDefault()는 a태그의 이벤트를 막는다는 의미이다.

props.onChangeMode()는 하위 태그의 함수를 실행하겠다는 뜻이다.

 

따라서, 하위 태그에 작성한

      <Header title = "WEB" onChangeMode={()=>{
        alert('Header');
      }}></Header>

WEB을 누르면 설정한 href로 이동하는 것이 아닌 Header라는 경고창이 나오게 될 것이다.

nav컴포넌트를 수정하여 클릭시 해당 id가 나오도록 해보시오.

https://github.com/denist2322/youtube_react/commit/669052bad0fa22cc59582abb5c8a24c442dedd5e

 

5강 이벤트 · denist2322/youtube_react@669052b

Showing 1 changed file with 14 additions and 10 deletions.

github.com

 

'리액트' 카테고리의 다른 글

7강. Create  (0) 2022.08.31
6강. state  (0) 2022.08.31
4강. props  (0) 2022.08.30
3강. 컴포넌트 만들기  (0) 2022.08.29
2강. 소스코드 수정방법  (0) 2022.08.29
Comments