refactor: 메모리 누수 정리 및 타이머 관리 개선, 이벤트 리스너 제거 함수 추가
This commit is contained in:
@@ -43,6 +43,7 @@ export const useSplideArrow = () => {
|
||||
* 화살표 버튼에 클릭 이벤트 리스너를 추가하는 함수
|
||||
* @param splide - Splide 인스턴스
|
||||
* @param onArrowClick - 화살표 클릭 시 실행될 콜백 함수
|
||||
* @returns 이벤트 리스너 제거 함수
|
||||
*/
|
||||
const addArrowClickListeners = (
|
||||
splide: SplideType,
|
||||
@@ -51,12 +52,25 @@ export const useSplideArrow = () => {
|
||||
const prevArrow = splide.root.querySelector('.arrow-prev')
|
||||
const nextArrow = splide.root.querySelector('.arrow-next')
|
||||
|
||||
const prevHandler = () => handleArrowClick('prev', splide, onArrowClick)
|
||||
const nextHandler = () => handleArrowClick('next', splide, onArrowClick)
|
||||
|
||||
if (prevArrow) {
|
||||
prevArrow.addEventListener('click', () => handleArrowClick('prev', splide, onArrowClick))
|
||||
prevArrow.addEventListener('click', prevHandler)
|
||||
}
|
||||
|
||||
if (nextArrow) {
|
||||
nextArrow.addEventListener('click', () => handleArrowClick('next', splide, onArrowClick))
|
||||
nextArrow.addEventListener('click', nextHandler)
|
||||
}
|
||||
|
||||
// 이벤트 리스너 제거 함수 반환
|
||||
return () => {
|
||||
if (prevArrow) {
|
||||
prevArrow.removeEventListener('click', prevHandler)
|
||||
}
|
||||
if (nextArrow) {
|
||||
nextArrow.removeEventListener('click', nextHandler)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,3 +80,4 @@ export const useSplideArrow = () => {
|
||||
addArrowClickListeners
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user