강의

멘토링

커뮤니티

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

천영도님의 프로필 이미지
천영도

작성한 질문수

실전 리액트 프로그래밍

몇 가지 리덕스 사용 팁

질문이 있습니다!

해결된 질문

작성

·

104

1

안녕하세요! 강의 너무 잘 듣고 있습니다.

이번 강의에서 setValue라는 이름의 action creator를 이용해서 코드를 개선하는 방법을 배웠는데요. 여기에 더 나아가서 상태값을 추가했을 때 selector.js도 변경하지 않도록 다음과 같은 코드(getValue)를 selector.js에 추가하는 어떨까요?

// selector.js
// export const getAgeLimit = (state) => state.friend.ageLimit;
export const getValue = (key) => (state) => state.friend[key];

// FriendMain.js
export default function FriendMain() {
  const ageLimit = useSelector(getValue('ageLimit'));
  // ...
}

답변 1

3

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

안녕하세요!

selector.js 를 적극적으로 사용하는 경우에는 getValue 함수를 사용하면 코드 작성이 편해질 것 같습니다.
다만, 
FriendMain 컴포넌트가 렌더링될 때마다 getValue 함수로 인해 새로운 함수가 만들어진다는 단점도 있겠네요.

selector.js 에 대해 첨언하자면,
selector.js 가 도움이 되는 경우는 프로젝트마다 다를 수 있다고 생각합니다.
리덕스에 있는 데이터를 가공해서 가져오는 경우가 많은 경우에는 도움이 되겠지만,
가공하는 경우가 별로 없고 그대로 가져오기만 한다면 
selector.js 작성이 오히려 생산성을 떨어뜨릴 수 있습니다.

천영도님의 프로필 이미지
천영도

작성한 질문수

질문하기