달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 문제풀이
  • BOJ
  • sql 문제풀이
  • SQL고득점Kit
  • HTML
  • MySQL
  • select
  • 자바
  • math
  • 혼공SQL
  • BRONZE
  • Scanner
  • 백준알고리즘
  • BOJ algorithm
  • Algorithm
  • 혼자공부하는SQL
  • Bronze V
  • 백준문제풀이
  • java
  • 알고리즘
  • programmers
  • Bronze IV
  • Bronze III
  • SQL
  • 백준
  • 혼공MySQL
  • react
  • 알고리즘풀이
  • 프로그래머스
  • java algorithm

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

개념 창고/React

[React] Event

2023. 3. 29. 18:30

컴퓨터 프로그램의 Event는 사건을 의미한다.
특정 사건이다. 사용자가 버튼을 클릭한 이벤트 등. 

그 때 필요한 동작을 해줘야한다.
이벤트 처리하는 것을 이벤트 핸들링한다고 함. 

// DOM의 Event
<button onclick="activate()">
       Activate
</button>


// React의 Event
<button onclick={activate}>
       Activate
</button>

// 동일한 동작을 하는 함수이다. 
// 표기법과 함수 전달의 방법에서 차이가 있다.
// React에선 카멜케이스를 쓴다.
// ex)camelCase


Event Handler : 이벤트 발생시 해당 이벤트를 처리하는 함수. 
Event Listener로 부르기도 한다. 
클래스함수들이 기본적으로 바운딩되지 않는다.
bind 없이 this 를 쓰면 글로벌로 호출이 되기 때문에,
함수 이름 뒤 괄호 없이 사용하려면 바인딩 해야한다.
그러지 않기 위해선 Class fields syntax 를 사용하거나 Arrow function 사용한다.
그러나 props로 넘어가 성능 이슈가 있어, 바인드나 클래스로 하는 것을 권장한다.  

함수 컴포넌트에서 이벤트를 처리하는 방법

function Toggle(props {
 const [isToggleOn, setIsToggleOn] = useState(true);

 // 방법 1. 함수 안에 함수로 정의
 function handleClick() {
    setIsToggleOn((isToggleOn) => !isToggleOn);
 }

 // 방법 2. arrow function을 사용하여 정의
 const handleClick = () => {
  setIsToggleOn((isToggleOn) => !isToggleOn);
 }

 return (
  <button onClick={handleClick}>
        {isToggleOn ? "켜짐" : "꺼짐"}
  </button>
 );
}


Event Handler 에 Arguments를 넘기는 방법
Arguments : 함수에 전달할 데이터
parameter : 매개변수 를 전달해야하기도한다. 

매개 변수 이벤트 핸드러에 전달하는 예제 

<button onClick={(event) => this.deleteItem(id, event)}>삭제하기</button>

<button onClick={this.deleteItem.bind(this, id)}>삭제하기</button>
저작자표시 비영리 변경금지 (새창열림)

'개념 창고 > React' 카테고리의 다른 글

[React] Composition vs Inheritance  (0) 2023.03.30
[React] Form  (0) 2023.03.30
[React] List and Keys  (0) 2023.03.30
[React] 조건부 렌더링(Conditional Rendering)  (0) 2023.03.30
[React] React Hook  (0) 2023.03.29
    '개념 창고/React' 카테고리의 다른 글
    • [React] Form
    • [React] List and Keys
    • [React] 조건부 렌더링(Conditional Rendering)
    • [React] React Hook
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바