인프런 커뮤니티 질문&답변

아리마님의 프로필 이미지
아리마

작성한 질문수

실전 리액트 프로그래밍

action 의 재활용

작성

·

120

0

강사님 안녕하세요.
질문 하나 남기고 갑니다.

  • A 목록조회
  • B 목록조회
  • C 목록조회

위 3개의 업무를 각각 수행하는 action 함수와 그에 맵핑된 saga 함수들이 이미 만들어져 있다고 가정하겠습니다.
만약 어떤 특이한 컴포넌트에서, 위 3개 정보들을 한번에 출력해야 하는 경우가 생겼을 시

이미 만들어져 있는 action 을 재사용하는 측면에서 아래와 같이 3개의 action 을 순차적으로 호출하는 식으로 개발해도 무방한지 궁금합니다.

const aList = useSelector(state => state.xxx.aList);
const bList = useSelector(state => state.xxx.bList);
const cList = useSelector(state => state.xxx.cList);
.....

onClick = () => {
  dispatch(actions.getAList(...));
  dispatch(actions.getBList(...));
  dispatch(actions.getCList(...));
}

아니면 3개의 api 를  병렬로 호출하는 별도의  saga 함수를 만들고, 
api 의 결과를 store 에 담는 하나의 reducer 를 만들어서 처리하는 게 나은 개발방식인지 알고 싶습니다.

dispatch를 연달아 3번 호출하면 기존 action 을 재사용 측면에서는 좋지만 렌더링이 여러번 발생할 듯 한데
렌더링이 여러번 발생하는 단점을 고려하여,  최적화된 별도의 action 과 saga 함수를 만들어 사용하는 것이 좋을 지 강사님 의견을 듣고 싶습니다.

답변 2

0

아리마님의 프로필 이미지
아리마
질문자

답변 감사드립니다.

jQuery 개발하던 때에는 로직 자체에만 집중을 했던 것 같은데

리액트 개발할 때는 상태가 바뀌면서 렌더가 자주 발생하면 문제가 되지 않을까 라는 생각을 항상 품고 개발을 하게 되는 거 같아요. 그러다보니 리액트가 어렵게 느껴지는 거 같고요..

익숙해질 때가 오겠죠 ㅎㅎ

0

이재승님의 프로필 이미지
이재승
지식공유자

안녕하세요
개인적으로는 성능 고민은 성능 이슈가 있을 때 하는 게 좋다고 생각합니다
(제가 강의에서 너무 성능 얘기를 많이 했나싶기도ㅎㅎ)
성능 이슈가 없다면 (위에 적어주신) dispatch 를 세 번 호출하는 방식이 좋은 것 같아요
만약 A, B, C 가 항상 같이 호출된다면 (당연한 얘기지만) 하나의 액션으로 처리하는 게 좋구요

아리마님의 프로필 이미지
아리마

작성한 질문수

질문하기