react-tutorial icon indicating copy to clipboard operation
react-tutorial copied to clipboard

8. useSelector 최적화 · GitBook

Open utterances-bot opened this issue 4 years ago • 3 comments

8. useSelector 최적화 · GitBook

https://react.vlpt.us/redux/08-optimize-useSelector.html

utterances-bot avatar Feb 10 '21 14:02 utterances-bot

useSelector를 여러번 사용하는 방법과 const { number, diff } = useSelector((state) => state.counter); 이렇게 비구조화를 해주어도 같은 방법인건가요? 이렇게 짜도 작동이 잘되고 todos는 리렌더링이 안되어서 최적화도 문제없는것같습니다.

daehyeongcho avatar Feb 10 '21 14:02 daehyeongcho

마지막에 shallowEqual 부분이 좀 틀린것 같습니다. 비교하지않는게 아니라, refererence 비교 ->실제 값이 바뀌었는지 비교 로 바뀌는거 아닌가요? https://react-redux.js.org/api/hooks#equality-comparisons-and-updates

byyoungjin avatar Aug 31 '21 08:08 byyoungjin

아 말씀하신게 맞네요 위 doc 이 좀 헷갈리게 되어있네요..

function shallowEqual(objA, objB) { if (is(objA, objB)) return true;

if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { return false; }

var keysA = Object.keys(objA); var keysB = Object.keys(objB); if (keysA.length !== keysB.length) return false;

for (var i = 0; i < keysA.length; i++) { if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { return false; } }

return true; }

byyoungjin avatar Aug 31 '21 08:08 byyoungjin