개발자
안녕하세요 리액트 공부중에 궁금한 것이 생겨서 질문 드립니다. React에서 api를 관리 할 때 따로 'src/api/serach.js' 이렇게 따로 만들어서 호출하는 형식으로 api 관리를 하고 있는데, 실무에서는 이 api 를 만들 때 클래스로 만들어서 호출하는 방식을 선호하나요? 아니면 hook으로 만들어서 호출하는 방식을 선호하나요?
답변 4
백엔드에서 api주소를 전달 해 주면 axios 에서 baseUrl만 설정해주고 사용하여야 하는 페이지에서 axios를 바로 사용하거나 api 파일을 따로 관리한다면 말씀하신 것 처럼그곳에서 작성한 axios 객체를 import해서 쓰거나 쓰거나 합니다. react-query를 사용하면 그것 역시 쿼리를 관리하는 파일에서 가져다 씁니다. 단순 api 호출은 괜히 복잡하게 클래스나 훅을 만들거나 하진 않는 경우가 많은것같아요
저는 API를 클래스로 만들어서 호출하지는 않고, 개별 함수로 만들어서 호출하는 방식으로 하고 있습니다. 실제로 해당 API를 호출하는 곳이 어딘지에 따라 호출 방식에 차이가 있긴 해요. 저는 주로 NextJS로 프로젝트를 만들 때, React-query를 사용하는데요. 서버 사이드에서 API를 호출하는 경우(ex. ReactQuery-Prefetch, 인증 관련)에는 API 함수를 직접 호출하는 편이고요. (아래 코드 중 findQuestions 를 직접 호출) 클라이언트 사이드에서는 React-query로 해당 API를 감싼 로직을 호출하는 식입니다. (아래 코드 중 useQuestions 를 호출) 질문자께서는 클래스로 만들어서 호출하는 방식도 얘기를 해주셨는데, API 메서드를 만들 때 클래스까지는 이용하지 않았던 거 같아요. 클래스를 사용하는 케이스도 같이 남겨주시면 더 얘기해볼 수 있을 것 같습니다 :)
1 2 3 4 5 6 7 8 9
// src/api/question.ts const findQuestions = () => { return axios('~~~'); }; // src/api-hooks/useQuestions.ts const useQuestions = () => {};
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!