Skip to content
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

feat: implement layout & side nav bar #6

Merged
merged 4 commits into from
Apr 24, 2024
Merged

feat: implement layout & side nav bar #6

merged 4 commits into from
Apr 24, 2024

Conversation

jw-r
Copy link
Member

@jw-r jw-r commented Apr 24, 2024

개요

  • 좌측 네비게이션 바 UI 구현

세부 내용

  • 페이지 라우팅 구현
  • 레이아웃 구현 및 배경 색 지정
  • 사이드 네비게이션 바 구현

관련 링크

@jw-r jw-r requested a review from woo-jk April 24, 2024 15:46
@jw-r jw-r self-assigned this Apr 24, 2024
@jw-r
Copy link
Member Author

jw-r commented Apr 24, 2024

Icon Component 들은 무시하셔도 괜찮습니다!

Copy link
Member

@woo-jk woo-jk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굿굿👍 작성해주신거 바탕으로 저도 슬슬 기능 구현 시작해보겠습니다👍

Comment on lines +22 to +44
const navItems: NavItem[] = useMemo(
() => [
{
href: '/',
title: '파워업 퀴즈',
Icon: PowerUpIcon,
segments: [['(quiz)']],
},
{
href: '/review',
title: '복습 체크',
Icon: ReviewCheckIcon,
segments: [['review']],
},
{
href: '/repository',
title: '공부 창고',
Icon: StudyRepositoryIcon,
segments: [['repository']],
},
],
[],
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혹시 이 데이터들을 useMemo가 아닌, 컴포넌트 외부의 변수로 빼는 방식은 어떤가요?

useMemo를 사용하면 매번 렌더링마다 비교 로직을 실행하기 때문에 미미하지만 성능의 차이가 있다고 알고있어서요!

Copy link
Member Author

@jw-r jw-r Apr 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@woo-jk
제안해주신 아이디어는 굉장히 좋은 것 같습니다!
다만 다음의 문제 또한 생각해볼 만 할 것 같습니다.

  1. navItems를 전역 변수로 선언한다면 findActiveNav의 인자로 navItems를 넘길 필요가 없어지면서 activeItem을 찾는 로직이 분산된다
  2. 아래의 useMemo의 의존성 배열에 navItems을 지정할 수 없다 (전역 변수는 useMemo의 변경 감지를 벗어남)
const activeItem = useMemo(() => findActiveNav(navItems, segments), [navItems, segments])
  1. navItems의 의존성 배열은 빈 배열로 성능 이점을 기대하기 어려운 점

이 경우에는 2번 때문에라도 전역변수로 활용하기는 어려울 것 같습니다

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 확인했습니다~👍 말씀해주신 이유로 useMemo를 써야겠네요 ㅎㅎ (성능 문제는 제가 잘못 알고 있었군요)

@jw-r jw-r merged commit ca6181c into main Apr 24, 2024
5 checks passed
@jw-r jw-r deleted the feat-side-bar-ui branch April 24, 2024 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants