개발자

커스텀 훅의 설계가 맞는 방식인지 궁금합니다.

2023년 02월 21일조회 159

현재 요청사항 관련한 페이지를 제작 하고 있습니다. useRequest 라는 훅을 만들어서 비즈니스 로직을 분리시켜주려고 합니다. 요청사항을 불러오는데에 있어서 다음과 같은 사항이 바뀌면 요청사항 리스트들이 바뀌는데요. 1. 페이지 ( 페이지는 검색을 할때 start 값을 결정해줍니다.) 2. 요청 타입 (all, install, as ...) 3. 날짜로도 검색 가능 (start, end) 4. 회사명 5. 회사번호 여기서 저는 useEffect 안에서 요청사항을 처음 불러오고 의존성 배열로 page, 타입, 날짜, 유저정보 를 넣어 이것이 바뀔때마다 요청사항 리스트들이 바뀌고 이것을 리턴해주는 방식으로 작성하였습니다. 제가 고민이되는 부분은 page나 요청 타입과 관련한 상태들을 useRequest 훅안에서 관리하는것이 틀리다고 생각하는데 그렇다면 useRequest(page, requestType) 이런식으로 관련된 상태들을 커스텀훅을 선언할때 모두 넣어주는것이 맞을까요? 다른 커스텀 훅 사례들을 보면 저처럼 많은 인자들을 넘겨주는 경우는 못 본거같아서 제가 작성하는 방식이 맞는지 궁금합니다. 아래 첨부한 코드는 처음에 page, 요청 타입등등을 useRequest 안에서 관리한 경우입니다,, 위에 말씀드린 부분과 아래 첨부한 코드 저는 둘다 잘못된거같은데,, 어떻게 설계해야할지 조언 부탁드립니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

hvp님의 프로필 사진

정답은 아니지만 아래와 같이 생각해볼 수 있을 것 같습니다. 리액트 자체도 그렇지만, 보통 선언적으로 함수를 작성하면 보기 쉽습니다. 선언적이라는 말은 what 무엇을 하는 지는 보여주고, how 어떻게 하는지는 내부에 숨겨둔다고 생각하시면 됩니다. 예시로, 보여주신 훅 안에서 다양한 state를 관리한다면 useRequest()와 같은 식으로 호출하지만. 여러가지 인자들을 object 형태로 넘겨주면 useRequest({page:1, …..}) 와 같은 형태로 나타납니다.어떻게 요청하는지는 보이지 않지만, 몇페이지에 무엇을 요청하는지는 보입니다. 개인적으로 hook의 이름에도 무슨 요청인지가 나타나면 더 좋을 것 같습니다.

LHS님의 프로필 사진

LHS

작성자

멋쟁이사자처럼 프론트엔드스쿨 수학2023년 02월 21일

감사합니다!! 말씀해주신부분 한번 고려해서 다시 작성해보겠습니다!!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!