• 티스토리 홈
  • 프로필사진
    루루개발자
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
루루개발자
  • 프로필사진
    루루개발자
    • 분류 전체보기 (213)
      • react & next.js (13)
      • Node.js & Javascript & Type.. (24)
        • d3.js (10)
      • 차트 만들기 (1)
      • 티스토리 스킨 개발 (7)
      • 내가 만든 패키지 (3)
      • 내가 만든 CSS (1)
      • CSS (7)
      • 도커 & 쿠버네티스 (3)
      • 개인 프로젝트 (7)
      • 리뷰 & 추천 (2)
      • 알고리즘 (1)
      • IT 기타 (18)
      • 잡동사니 (1)
      • Spring Boot (5)
      • 취미로 그리는 그림들 (120)
      • 개인적인 생각들 (0)
  • 반응형
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [react-add-event-listener] 리액트용 addEventListener 훅
        2023년 10월 16일
        • 루루개발자
        • 작성자
        • 2023.10.16.:48
        반응형

        리액트에서 특정 요소에 직접 event listener 를 할당해야 하는 경우에 사용될 수 있는 useAddEventListener 훅을 제공하는 @wisdomstar94/react-add-event-listener 패키지를 소개합니다.

         

        설치 방법

        npm i @wisdomstar94/react-add-event-listener

        https://www.npmjs.com/package/@wisdomstar94/react-add-event-listener

         

        @wisdomstar94/react-add-event-listener

        본 레포지토리는 js 의 addEventListener 와 관련된 기능을 제공해주는 리액트 훅의 레포지토리 입니다. addEventListener에 콜백함수로 넘긴 함수를 갱신시켜주지 않으면 이전 상태 값을 계속 참조하고

        www.npmjs.com

         

        useEffect 안에서 addEventListner 를 사용할 시 발생하는 이슈

        리액트에서 제공하는 props 를 사용하지 않고 특정 요소에 직접 이벤트 리스너를 할당해야 할 때 해당 리스너의 콜백함수 내에서 컴포넌트 내에 선언한 특정 state 를 참조할 경우 해당 state 는 리스너 할당 당시의 변수를 바라보게 됩니다. 즉, 이후에 useState 의 setter 함수에 의해 state 가 변경되더라도 addEventListener 의 콜백 함수 내에선 계속 예전의 상태 값을 참조하게 되는 이슈가 발생합니다.

         

        useAddEventListener 훅 개발

        addEventListener 의 콜백 함수 내에서 계속 최신 상태의 state 를 참조하게 하기 위해서는 addEventListener 의 콜백 함수 내에서 참조하고 있는 state 들이 변경될 경우 이전에 할당했던 listener 는 삭제하고 새로운 listener 로 다시 할당해주어야 하는 과정이 필요합니다. 이러한 과정이 필요할 때마다 일일이 동일한 로직을 작성해주는 피로를 줄이기 위해, 이러한 과정을 자동으로 처리해주는 "useAddEventListener" 라는 훅을 "@wisdomstar94/react-add-event-listener" 라는 패키지로 개발하였습니다.

         

        Window 및 HTMLElement 에 리스너 할당시 타입추론 제공

        window 혹은 특정 html element 에 addEventListener 를 작성할 때 typescript 사용시 이벤트명마다 각각의 콜백함수 인터페이스가 자동으로 타입추론이 되는데, 이를 useAddEventListener 훅을 사용할 때도 동일하게 타입추론이 이루어질 수 있도록 하였습니다. 

         

         

        반응형

        '내가 만든 패키지' 카테고리의 다른 글

        [react-circle-wheel-select-box] 리액트용 원형 휠 선택 박스  (2) 2024.02.19
        [react-calendar] DatePicker 찾으시나요?  (0) 2023.09.09
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바