[React] 이벤트 처리하기

박소정·2023년 7월 21일
1

React

목록 보기
11/26
post-thumbnail

Intro 🎉

이벤트랑 웹 페이지에서 일어나는 사용자의 행위입니다.
버튼 클릭, 페이지 스크롤, 새로고침 등이 이런 행위에 해당합니다.
리액트에서는 어떻게 이벤트를 처리할까요?

이벤트 핸들링과 이벤트 핸들러 🫶

이벤트 핸들링은 이벤트가 발생하면 특정 코드가 동작하도록 만드는 작업입니다.
다음은 리액트를 사용하지 않고 HTML과 자바스크립트만으로 이벤트 핸들링을 하는 예입니다.

<!DOCTYPE html>
<html>

<head>
  <title>이벤트</title>
  <script>
    function handleOnClick() {
      alert("button clicked!");
    }
  </script>
</head>

<body>
  <button onclick="handleOnClick()">
    Click Me!
  </button>
</body>

</html>



리액트의 이벤트 핸들링 (❁´◡`❁)

//Body.js 수정
function Body() {
//함수 handleOnClick 선언
  function handleOnClick(){
    alert("버튼을 클릭하셨군요!");
  }
  return(
    <div className="body">
    //버튼 생성
      <button onClick={handleOnClick}>클릭하세요</button>
    </div>
  );
}

export default Body;



이벤트 객체 사용하기 🫶

리액트에서는 이벤트가 발생하면 이벤트 핸들러에게 이벤트 객체를 매개변수로 전달합니다.

function Body() {
  function handleOnClick(e){
    console.log(e);
    console.log(e.target.name);
  }
  return(
    <div className="body">
      <button name="A버튼" onClick={handleOnClick}>
        A버튼
      </button>
      <button name="B버튼" onClick={handleOnClick}>
        B버튼
      </button>
    </div>
  );
}

export default Body;
  1. 버튼 이벤트 핸들러 handleOnClick을 생성합니다.
    이 함수는 이벤트 객체(e)를 매개변수에 저장하고, 해당 객체의 target.name 프로퍼티 값을 콘솔에 출력합니다.

  2. 버튼 A, B를 생성합니다.

  3. A 버튼을 클릭하면 e.target에는 A 버튼이 저장되고, B 버튼을 클릭하면 e.target에는 B 버튼이 저장됩니다.

  4. 다음과 같이 출력됩니다.

0개의 댓글