작성
·
120
0
강사님 안녕하세요.
질문 하나 남기고 갑니다.
위 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 가 항상 같이 호출된다면 (당연한 얘기지만) 하나의 액션으로 처리하는 게 좋구요