Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- 부트캠프항해
- 항해99후기
- 그리디
- 항해99솔직후기
- NextJS v13
- greedy
- 로딩 후 실행
- 프로그래머스
- 클라이언트 컴포넌트
- 항해99추천
- 자바스크립트
- 탐욕알고리즘
- 항해99
- 동전 0
- 중복선택
- 중복카테고리
- 알고리즘
- 카테고리필터
- 서버 컴포넌트
- react
- 날씨 api
- 배열 메소드
- 숫자를 별점으로
- JavaScript
- db수정
- 배열 중복 제거
- 실전프로젝트
- jQuery
- server component
Archives
- Today
- Total
공부 및 일상기록
[React] html과 리액트의 이벤트 처리 방식 차이점 본문
React에서의 이벤트 처리
html과의 차이점
React 이벤트 이름은 모두 소문자 대신 camelCase를 사용한다.
JSX에 문자열 대신 함수를 전달한다.
리액트에서 이벤트 처리방법
1. 컴포넌트에서 DOM이벤트 사용
컴포넌트에서 출력된 특정 DOM 객체에 이벤트 컴포넌트가 동작하기 위해선 아래 표의 이벤트 프로퍼티를 사용해야 한다.
이벤트 명 | JSX DOM 이벤트 프로퍼티 | 이벤트 호출 시점 |
click | onClick | 엘리먼트에 마우스나 키보드가 클릭 된 경우 |
change | onChange | 엘리먼트의 내용이 변경된 경우 |
submit | onSubmit | 폼의 데이터가 전송될 때 |
keydown | onKeyDown | 키보드 버튼이 눌린 경우 ( 값 입력전에 발생하며, shift, alt, ctrl 등 특수키에 동작한다. ) (한/영, 한자 등은 인식불가) |
keyup | onKeyUp | 키보드 버튼이 눌렸다 뗀 경우 ( 값 입력후에 발생하며, onKeyDown 과 동일하게 동작한다. ) |
keypress | onKeyPress | 키보드 버튼이 눌려져 있는 경우 ( 실제 글자가 작성될때 이벤트이며, ASCII 값으로 사용되어 특수키를 인식 못한다.) |
focus | onFocus | 엘리먼트가 포커스 된 경우 |
blur | onBlur | 엘리먼트가 포커스가 사라진 경우 |
mousemove | onMouseMove | 엘리먼트 위에서 마우스 커서가 움직일 때 |
mousedown | onMouseDown | 마우스 버튼이 클릭되기 시작할 때 |
mouseup | onMouseUp | 마우스 버튼 클릭이 끝날때 |
2. 리액트의 이벤트 문법
- 소문자 대신 카멜케이스를 사용한다.
- onClick={changename} x
- onClick={changeName} o
- jsx를 사용하여 문자열이 아닌 함수로 이벤트 핸들러를 전달한다.
- onClick="changeName()" x
- onClick={changeName} o
- 만약 onClick={changeName()} 이렇게 함수를 실행문을 넣게 되면 함수가 반환하는 값이 들어가게 된다.
- 함수를 직접 선언하여 사용한다.
- <div onClick={()=>{setState("클릭됨")}}> 클릭하면 state가 클릭됨으로 바뀜! </div>
3.이벤트의 기본동작 방지 처리
리액트에서는 false를 반환해도 기본동작을 방지할 수 없다.
반드시 preventDefault를 명시적으로 호출해야 한다.
'개발 > React' 카테고리의 다른 글
[React] HOC에 대해 설명 (0) | 2023.01.17 |
---|---|
[React] context API (0) | 2023.01.12 |
[React] map함수 사용시 key props를 사용해야 하는 이유 (0) | 2023.01.12 |
[React] useRef란? (0) | 2023.01.12 |
[React] setState는 왜 비동기 일까? (0) | 2023.01.12 |