useCallback의 경우 동일한 내용의 함수가 새로생성되면서 참조값이 달라지면, 해당 콜백 함수를 받는 하위 컴포넌트에서 리렌더링이 일어나기 때문에 이것을 방지하기 위해서 useCallback으로 의존성 배열의 값이 달라지지 않는 경우에 캐싱해놓고 동일한 참조의 함수를 반환하는 거임
익명(210.121)2021-10-14 02:33
답글
너가 원하는 건..
1. 하위컴포넌트에서 이벤트 등으로 특정한 상태값이 변경되는 상황이 발생
2. 상태값이 변했을 때 상위 컴포넌트에서 그 이벤트 또는 변경된 값에 따라서 새로운 데이터를 불러오는거 맞음?
익명(210.121)2021-10-14 02:35
답글
딱히 정답은 없는데 너가 윗댓글에서 말한거처럼 useState의 반환값 , set 함수를 넘겨줘도 됨
익명(210.121)2021-10-14 02:36
답글
너가 어떻게 그 기능들을 구현했는지 해당 상위 컴포넌트, 하위 컴포넌트를 봐야 좀더 정확히 알겠지만.. 시도해보고 안되면 다른걸로 해보면 되징
그럼저리가..
컴포넌트 렌더링 될 때마다 함수도 싹다 다시 만들어져야하고 그 크기가 커서 성능 저하오면 문제 되니까 함수 자체를 캐싱해놓는거임. 필요하면 써야지 그닥 필요없는데 유즈콜백이나 메모 남발하면 그게 오히러 성능 저하 원인될 수 있음
그럼 페이징할때 페이지네이션 컴포넌트가 따로있으면 그냥 useState 초기값이랑 set함수 넘겨줘서 처리하는게나을까요?
함수를 캐싱해서 얻는 효용이 더 좋으면 하면 됨. 전체 코드 안보고는 모르지.
예제들로 좀 이해가 안되는데 대표적인 사례를 알려주실수있을까유..
useCallback의 경우 동일한 내용의 함수가 새로생성되면서 참조값이 달라지면, 해당 콜백 함수를 받는 하위 컴포넌트에서 리렌더링이 일어나기 때문에 이것을 방지하기 위해서 useCallback으로 의존성 배열의 값이 달라지지 않는 경우에 캐싱해놓고 동일한 참조의 함수를 반환하는 거임
너가 원하는 건.. 1. 하위컴포넌트에서 이벤트 등으로 특정한 상태값이 변경되는 상황이 발생 2. 상태값이 변했을 때 상위 컴포넌트에서 그 이벤트 또는 변경된 값에 따라서 새로운 데이터를 불러오는거 맞음?
딱히 정답은 없는데 너가 윗댓글에서 말한거처럼 useState의 반환값 , set 함수를 넘겨줘도 됨
너가 어떻게 그 기능들을 구현했는지 해당 상위 컴포넌트, 하위 컴포넌트를 봐야 좀더 정확히 알겠지만.. 시도해보고 안되면 다른걸로 해보면 되징
천천히 곱씹어보면서 공부하겠읍니다 감사합니다 행복하세요