[Javascript] 이벤트 핸들러 등록Web, Front-end2024. 8. 27. 00:00
Table of Contents
반응형
- 이벤트 핸들러$_{event \space handler, \space event \space listener}$는 이벤트가 발생했을 때 브라우저에 호출을 위임한 함수
- 이벤트가 발생하면 브라우저에 의해 호출될 함수가 이벤트 핸들러
- 이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것을 이벤트 핸들러 등록이라 함
인라인 이벤트 핸들러
- HTML 요소에 직접
onclick
등의 속성으로 지정 - 간단하지만 HTML과 Javascript 코드가 섞여 유지보수가 어려울 수 있음
- 관심사가 다르므로 혼재하는 것보다 분리하는 것이 좋음
function handleClick() { console.log('인라인 이벤트; 버튼 클릭됨'); }
- 모던 자바스크립트에서는 이 방식을 사용하는 경우가 있음
- CBD 방식의
Angular
/React
/Svelte
/Vue.js
는 인라인 이벤트 핸들러 방식으로 처리 - 뷰를 구성하기 위한 구성 요소로 보기 때문에 관심사가 다르다고 생각하지 않음
{ /* React */} <button onClick={handleClick}>Save</button>
- CBD 방식의
프로퍼티로 이벤트 핸들러 할당
- Javascript에서 요소의
onclick
등의 프로퍼티에 함수 할당 - 간단하지만 하나의 이벤트에 하나의 핸들러만 할당할 수 있음
const $btn2 = document.getElementById('btn2'); $btn2.onclick = function() { console.log('프로퍼티 핸들러; 버튼 클릭됨'); }
addEventListener 메서드 방식
addEventListener
를 통해 이벤트 핸들러 등록할 수 있음const $button = document.querySelector('button'); $button.addEventListener('click', function() { console.log('버튼 클릭'); });
파라미터
eventType
- 리스너를 등록할 이벤트 타입 나타내는 문자열
- 이벤트 핸들러 프로퍼티 방식과는 달리 on 접두사를 붙이지 않음
listener
- 이벤트가 발생했을 때 호출될 함수
options
- 이벤트 캐치 할 이벤트 전파 단계 지정
- 생략,
false
: 버블링 단계에서 이벤트 캐치 true
: 캡처링 단계에서 이벤트 캐치
- 생략,
- 이벤트 캐치 할 이벤트 전파 단계 지정
728x90
반응형
'Web, Front-end' 카테고리의 다른 글
[Typescript] 사진과 영상을 FormData로 서버에 전송하기 (6) | 2024.09.19 |
---|---|
[Javascript] 이벤트 전파 (1) | 2024.08.27 |
[Javascript] const 키워드 (0) | 2024.06.05 |
[Javascript] let 키워드, 일시적 사각지대 (0) | 2024.06.05 |
[Javascript] var 키워드의 문제점과 호이스팅 (0) | 2024.06.05 |
@junyeokk :: 나무보다 숲을
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!