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

[CLIENT] 공통 레이아웃 적용을 위한 라우팅 구조 수정 #47

Closed
leegwae opened this issue Nov 15, 2022 · 0 comments
Closed
Assignees
Labels
🌈 client Client 작업 ✨ feature 기능 추가
Milestone

Comments

@leegwae
Copy link
Member

leegwae commented Nov 15, 2022

🎉 11.16 이후 라우팅 구조

🤷‍♂️ Description

현재 상황

  • 현재 라우팅 구조는 아래와 같다.
    <Routes>
    <Route path="/" element={<Home />}>
    <Route path="dms" element={<DM />}>
    <Route path="followings" element={<Followings />} />
    <Route path="followers" element={<Followers />} />
    <Route path="user-search" element={<UserSearch />} />
    <Route path=":roomId" element={<DMRoom />} />
    </Route>
    <Route
    path="communities/:communityId/channels/:roomId"
    element={<Community />}
    />
    </Route>
    <Route path="/sign-in" element={<SignIn />} />
    <Route path="/sign-up" element={<SignUp />} />
    <Route path="*" element={<NotFound />} />
    </Routes>

문제: ⚠️ DM 페이지에서 팔로우, 팔로잉, 사용자 검색 페이지가 공유하는 컴포넌트는 DMRoom 페이지는 공유하지 않는다.

DM 페이지 밑에는 임의의 라우트 A와 DMRoom 페이지를 놓고, A 밑에 팔로우, 팔로잉, 사용자 검색 페이지를 넣으면 될 거 같다.


⚠️ 아래는 11.16 이전 라우팅 구조입니다.

🤷‍♂️ Description

현재 상황

공통 레이아웃 적용을 위해 라우팅 구조를 수정해야한다.

  • 우선 커뮤니티 페이지는 아래와 같다.

- DM 페이지는 아래와 같다.

  • 현재 라우팅 구조는 아래와 같다.

const App = () => (
<Routes>
<Route path="/" element={<Home />} />
<Route path="/sign-in" element={<SignIn />} />
<Route path="/sign-up" element={<SignUp />} />
<Route path="/dms" element={<DM />}>
<Route path="followings" element={<Followings />} />
<Route path="followers" element={<Followers />} />
<Route path="user-search" element={<UserSearch />} />
<Route path=":roomId" element={<DMRoom />} />
</Route>
<Route
path="/communities/:communityId/channels/:roomId"
element={<Community />}
/>
<Route path="*" element={<NotFound />} />
</Routes>
);

이때 DM 페이지와 커뮤니티 페이지는 별개의 Route로, children으로 Gnb 컴포넌트를 각각 따로 가지고 있다.

문제: ⚠️맨 왼쪽의 Gnb 컴포넌트는 페이지를 이동해도 다시 렌더링될 필요가 없다.⚠️

Gnb를 밖으로 빼주고 Home 페이지 밑으로 DM 페이지와 커뮤니티 페이지를 넣어주면 될 거 같다.

@leegwae leegwae added ✨ feature 기능 추가 🌈 client Client 작업 labels Nov 15, 2022
leegwae added a commit that referenced this issue Nov 15, 2022
- 기존: DM 페이지와 커뮤니티 페이지는 별개의 페이지로 Gnb를 공유하지 않았음
- 변경 후: DM 페이지와 커뮤니티 페이지를 `/` 경로 아래에 두어 Gnb를 공유하게 됨
@leegwae leegwae added this to the ⛰️ Week2 milestone Nov 15, 2022
leegwae added a commit that referenced this issue Nov 16, 2022
* feat: 공통 레이아웃 적용을 위해 라우팅 구조 변경 #47

- 기존: DM 페이지와 커뮤니티 페이지는 별개의 페이지로 Gnb를 공유하지 않았음
- 변경 후: DM 페이지와 커뮤니티 페이지를 `/` 경로 아래에 두어 Gnb를 공유하게 됨

* chore: eslint global에 JSX 명시

* feat: 팔로잉, 팔로워, 사용자 검색을 query params에 따라 조건부 렌더링

- 기존: `/followings`, `/followers`, `/user-search`에 각각 라우터가 등록되어있었음.
따라서 재렌더링하지 않아도 되는 부분까지 재렌더링해야했음
- 변경 후: `/dms?tab=`처럼 `tab` query params에 따라 조건부 렌더링

* feat: `Home` 페이지 - gnb, sidebar 위치 놓음
soomanbaek pushed a commit that referenced this issue Nov 21, 2022
* feat: 공통 레이아웃 적용을 위해 라우팅 구조 변경 #47

- 기존: DM 페이지와 커뮤니티 페이지는 별개의 페이지로 Gnb를 공유하지 않았음
- 변경 후: DM 페이지와 커뮤니티 페이지를 `/` 경로 아래에 두어 Gnb를 공유하게 됨

* chore: eslint global에 JSX 명시

* feat: 팔로잉, 팔로워, 사용자 검색을 query params에 따라 조건부 렌더링

- 기존: `/followings`, `/followers`, `/user-search`에 각각 라우터가 등록되어있었음.
따라서 재렌더링하지 않아도 되는 부분까지 재렌더링해야했음
- 변경 후: `/dms?tab=`처럼 `tab` query params에 따라 조건부 렌더링

* feat: `Home` 페이지 - gnb, sidebar 위치 놓음
@mjsdo mjsdo closed this as completed Dec 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🌈 client Client 작업 ✨ feature 기능 추가
Projects
None yet
Development

No branches or pull requests

2 participants