개발자
현재 요청사항 관련한 페이지를 제작 하고 있습니다. useRequest 라는 훅을 만들어서 비즈니스 로직을 분리시켜주려고 합니다. 요청사항을 불러오는데에 있어서 다음과 같은 사항이 바뀌면 요청사항 리스트들이 바뀌는데요. 1. 페이지 ( 페이지는 검색을 할때 start 값을 결정해줍니다.) 2. 요청 타입 (all, install, as ...) 3. 날짜로도 검색 가능 (start, end) 4. 회사명 5. 회사번호 여기서 저는 useEffect 안에서 요청사항을 처음 불러오고 의존성 배열로 page, 타입, 날짜, 유저정보 를 넣어 이것이 바뀔때마다 요청사항 리스트들이 바뀌고 이것을 리턴해주는 방식으로 작성하였습니다. 제가 고민이되는 부분은 page나 요청 타입과 관련한 상태들을 useRequest 훅안에서 관리하는것이 틀리다고 생각하는데 그렇다면 useRequest(page, requestType) 이런식으로 관련된 상태들을 커스텀훅을 선언할때 모두 넣어주는것이 맞을까요? 다른 커스텀 훅 사례들을 보면 저처럼 많은 인자들을 넘겨주는 경우는 못 본거같아서 제가 작성하는 방식이 맞는지 궁금합니다. 아래 첨부한 코드는 처음에 page, 요청 타입등등을 useRequest 안에서 관리한 경우입니다,, 위에 말씀드린 부분과 아래 첨부한 코드 저는 둘다 잘못된거같은데,, 어떻게 설계해야할지 조언 부탁드립니다.
답변 1
정답은 아니지만 아래와 같이 생각해볼 수 있을 것 같습니다. 리액트 자체도 그렇지만, 보통 선언적으로 함수를 작성하면 보기 쉽습니다. 선언적이라는 말은 what 무엇을 하는 지는 보여주고, how 어떻게 하는지는 내부에 숨겨둔다고 생각하시면 됩니다. 예시로, 보여주신 훅 안에서 다양한 state를 관리한다면 useRequest()와 같은 식으로 호출하지만. 여러가지 인자들을 object 형태로 넘겨주면 useRequest({page:1, …..}) 와 같은 형태로 나타납니다.어떻게 요청하는지는 보이지 않지만, 몇페이지에 무엇을 요청하는지는 보입니다. 개인적으로 hook의 이름에도 무슨 요청인지가 나타나면 더 좋을 것 같습니다.
LHS
작성자
멋쟁이사자처럼 프론트엔드스쿨 수학 • 2023년 02월 21일
감사합니다!! 말씀해주신부분 한번 고려해서 다시 작성해보겠습니다!!!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!