- 개인적인 생각
- 로그인 하여 API 통신으로 User정보와 token을 받아온다.
- token은 localstorage에 저장하고, User정보는 Context API를 사용하여 전역으로 관리한다.
- context api는 새로고침시 정보가 날라가므로, 페이지 렌더링 될때마다 User정보가 없으면 localstorage의 token을 확인하여 로그인 여부 확인하고 token을 가지고 새롭게 User정보 받아오기
답변: 쿠키🍪 > 로컬스토리지
- 토큰 관리
- 쿠키 (http only) (유저가 알바아님ㅇㅇ)
- localstorage 보안에 취약 (되도록 지양)
- User정보 관리
- Context API
- useQuery도 가능
const PrivateRoute = (props: Route 관련된 정보) => { const { successs } = useUserLogin(); if (success) reutn props.route; return fallback; }; export const Routes = () => { return ( <Switch> <Route path="/home" components={<Home/>} /> <PrivateRoute path path="/mypage" components={<MyPage />} fallback={<Login />} /> </Switch> ) } const Home = () => { const {} = useLogin(); if (!success) reutn <Login />; }; <Suspense> <
다크모드 - 당근🥕에서는 이렇게 해요
css variable. html 태그에 data-seed-scale-color 속성을 dark or light로 설정하는 방법!
context API는 가장 많이 쓰는 방법 중 하나일 뿐 가장 좋은 방법이라고 말할 수는 없다.
radix-ui
private route
tailwind 다크모드