-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[#26] 워크스페이스 페이지의 불필요한 리렌더링 개선 #35
Conversation
…관리하도록 변경" This reverts commit b4409ef.
…팁의 좌표를 계산하는 방식으로 변경
…b31-BooLock into refactor/26
…렌더링이 발생하는 문제를 해결함
제가 승인자는 아니지만 글이 좋아서 읽다가 코멘트 남깁니다 ㅎㅎ
0도 매직넘버로 생각하고 상수 처리하는 대해서 어떻게 생각하시나요? 고생 많으셨습니다 대 영 재 님 ❤️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리렌더링 개선하느라 고생하셨습니다~ 타입과 훅 분리 등 코드 구조도 개선하신 점 리스팩입니다 역시 대영재<3
const currentCssClassName = useCssPropsStore((state) => state.currentCssClassName); | ||
const totalCssPropertyObj = useCssPropsStore((state) => state.totalCssPropertyObj); | ||
const selectedCssCategory = useCssPropsStore((state) => state.selectedCssCategory); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
구조분해할당을 지양하는 것이 베스트지만, 여러 상태를 불러와야할 경우 useShallow도 추천드립니당
구조 분해 할당이 문제였던 거군요..! 덕분에 zustand에 대해 조금 더 이해할 수 있었습니다. 감사합니다! |
🔗 #26
🙋 Summary (요약)
😎 Description (변경사항)
CSS 툴팁 렌더링 시 불필요한 리렌더링 발생 해결
문제의 코드
40
이라는 매직넘버로 관리하던 방식에서 useLayoutEffect를 통해 화면 렌더링 전에 툴팁의 높이를 계산하는 방식으로 변경하여 40이라는 매직넘버를 없앨 수 있었습니다.변경된 useCssTooltip
변경된 CssTooltip 코드
작업 내용 요약2
useCssPropsStore((state) => state)
의 결과 중에서totalCssPropertyObj
만 구독하는 것이 아닌, 내부적으로CssPropsStore
의 모든 상태를 구독해서 발생하는 문제 였습니다.totalCssPropertyObj
만 구독해야 하는 컴포넌트가currentClassName
처럼 필요하지 않는 상태들을 구독했고 이는 곧 의도치 않은 리렌더링이라는 결과를 낳았습니다.🔥 Trouble Shooting (해결된 문제 및 해결 과정)
🤔 Open Problem (미해결된 문제 혹은 고민사항)