reselect
redux 사용시, 서버에서 내려준 데이터를 가공해야할 경우가 있다.
예컨대, 상품 리스트를 받았다고 하자. 상품은 제목, 카테고리, 세일여부, 무료배송 여부 등등 여러 상태를 가진다. 유저는 UI에서 위 속성을 필터로 사용할 수 있다.
가공 위치는 reducer / render 내에서 할 수 있다.
reducer에 각 필터에 대한 목록을 저장할 수 있다.
render안에서 매번 계산할 수 있다.
reducer에서 가공하기.
목록을 미리 저장하므로 메모리를 많이 사용하게 된다.
또한, 동일 데이터가 여러 곳에 중복 저장된다.
이 데이터들의 상태를 임의로 변경(예를 들어 별점 변경)할 경우, 복잡한 동기화 작업.
이 문제는 normalizing을 통해 각 필터들이 id만 들고 있으면 해결되긴한다.
그럼 원천 데이터는 한곳에 두고 각 필터에 대한 아이템들은 id만 들고 있으면 되는데..
애초에, 유저가 누르지도 않을 필터를 미리 계산해놓는 것 자체가 불필요하다고 생각한다.
render에서 가공하기.
걍 필요할 때마다 render에서 연산하면된다.
근데 render마다 매번 똑같은 계산을 해야한다.
reselect에게 도움받기
reselect는 함수 호출시
Last updated
Was this helpful?