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 | 29 | 30 |
Tags
- SCSS use
- SCSS extend
- KDT 프로그래머스 데브코스 프론트엔드
- Spacer
- 다른컴퓨터에서 git사용
- vuex map
- 폼 입력 바인딩
- 프로그래머스 K_Digital Training
- Vue
- 이벤트 수식어
- SCSS import
- vue 이벤트 수신
- git 같은계정 다른 컴퓨터
- 리액트
- flex
- netlify redirect
- react next
- 프로그래머스 데브코스 프론트엔드
- KDT 프로그래머스
- nextjs사용법
- intersection opserver
- 리스트 렌더링
- 프로그래머스 프론트엔드 데브코스
- 프로그래머스 데브코스
- postcss
- 고양이 사진 검색기
- 쌓임맥락
- vue 지역 컴포넌트
- SCSS forward
- vue mixin
Archives
- Today
- Total
혼자 적어보는 노트
[Javascript] 커스텀 이벤트 다뤄보기 본문
js에서 customEvent로 이벤트를 직접 만들 수 있다는 것을 알게 되었다.
기본적으로 아래와 같이 사용할 수 있다.
document.addEventListener("welcome", () => {
//이벤트 수신중. 호출되면 아래의 console.log 출력
console.log("Welcome!");
});
const customEvent = new CustomEvent("welcome"); // 이벤트 생성
document.dispatchEvent(customEvent); // 이벤트 요청
document에서 welcome이라는 이벤트를 수신하고있고
document에서 해당 이벤트 호출 시 함수가 실행된다.
커스텀 이벤트 호출의 조건은 new CustomEvent('이벤트이름')으로 이벤트를 생성하고
dispatchEvent로 해당 이벤트를 호출해주면 된다.
아래와 같이 줄여서 사용할 수도 있다.
document.addEventListener("welcome", () => {
console.log("Welcome!");
});
document.dispatchEvent(new CustomEvent("welcome"));
부모자식 관계에서도 커스텀 이벤트를 활용할 수 있으며
파라미터로 값 또한 넘겨 받을 수 있다.
<div class="box">
<button>버튼</button>
</div>
const box = document.querySelector(".box");
const button = document.querySelector("button");
box.addEventListener("welcome", (event) => {
// 부모가 이벤트를 Listen
console.log(event.detail.name);
});
button.addEventListener("click", function () {
this.dispatchEvent( // 여기서 this는 button
new CustomEvent("welcome", {
//자식이 커스텀 이벤트를 만들고 전송
bubbles: true,
detail: { name: "Jay" },
})
);
});
'Javascript' 카테고리의 다른 글
[Javascript] Debounce (디바운스) (0) | 2022.02.02 |
---|---|
[javascript] json 데이터 체크 (1) | 2022.01.27 |
[Javascript] textarea 다뤄보기 / 스크롤바 가리기, 자동 높이 조절 with CSS (0) | 2022.01.19 |
[Javascript] 객체 내부의 key값 체크 (0) | 2022.01.18 |
[Javascript] Array.prototype / some, every (0) | 2022.01.13 |
Comments