
관련 예시코드는 추후 업데이트 예정입니다
우리는 리액트에 빌트인 되어있는 useState, useEffect, useRef 등의 훅을 사용해왔다.
좋은 기능을 가진 내장된 훅들이 많이 있지만, 내가 원하는 구체적인 기능구현이 아쉬운 훅도 있기마련이다.
그럴때 기존의 훅을 활용하여 나만의 훅을 만들 수 있는데 이것을 커스텀 훅 이라고 한다.
먼저, 커스텀 훅이 언제 유용한지와 어떤 이점이 있길래 사용하는 것인지 살펴보자.
반복되는 로직 을 여러 컴포넌트에서 재사용해야하는 상황일 때 유용하다.(예:토글, 입력값 관리 등) ⇒ 로직공유가능 중복을 줄이고, 컴포넌트의 가독성과 유지보수성을 향상시켜준다.그렇다면 커스텀 훅은 어떻게 만들어야할까?
use 로 시작하고 뒤에 대문자로 시작해야한다. (*예: useInputValue, useToggleState 등)useState) 및 이펙트(useEffect)등 빌트인 훅을 정의한다.로직을 처리한 후 필요한 값 또는 함수를 반환한다.재사용이 필요한 경우에는 별도의 파일로 분리하여 모듈 내보내기를 한다.리액트에 맞춰 linter를 설정해놓으면 작명규칙을 놓치지 않도록 잡아줄 것이다.
필요한 반복되는 로직을 나만의 훅으로 만들어서 사용하는 것은 어떻게 보면 매력적인 일이다.
이런 매력적인 커스텀 훅의 특징으로는 다음과 같은 내용들이 있다.
함수형 컴포넌트 또는 다른 커스텀 훅 내부에서만 사용할 수 있다.useMount 와같은 커스텀 훅은 생성하면 안되며, 용도를 명확히 해야한다.이벤트 핸들러는 Effect 로 감싸야한다. ⇒ 어떤 경우에 감싸주면 좋을까? (아래에서 계속...)커스텀 훅은 반복되는 로직을 추상화하고 재사용할 수 있게 해준다.
로직을 분리하여 코드의 가독성, 유지보수성, 재사용성을 향상시킬 수 있다.
🔗 참고자료
https://ko.legacy.reactjs.org/docs/hooks-custom.html
https://ko.react.dev/learn/reusing-logic-with-custom-hooks
https://tanstack.com/