localStorage.setItem("accessToken", accessToken || "")
localStorage.getItem("accessToken")
** 이와 같은 렌더링순서 때문에 localStorage를 조건없이 적용시키면 prerendering하는 과정에서 오류가 발생한다.
if (process.browser) {
if (localStorage.getItem("accessToken")) {
setAccessToken(localStorage.getItem("accessToken") || "");
}
}
if (process.browser) {
if (localStorage.getItem("accessToken")) {
setAccessToken(localStorage.getItem("accessToken") || "");
}
}
useEffect(() => {
if (localStorage.getItem("accessToken")) {
setAccessToken(localStorage.getItem("accessToken") || "");
}
}, []);
: 함수와 함수가 선언된 어휘적 환경의 조합이다.
HOC(HighOrderComponent) : JSX를 return
HOF(HighOrderFunction) : JSX를 리턴하지 않는다.
HOC: 특정 컴포넌트를 실행하지 전 상위 컴포넌트를 먼저 실행시킨다.
이를 이용하여 특정 인증이 필요한 페이지에서 토큰이 없을 경우 미리 접근을 금지할 수 있다.
HOF: 기존 event.target.id사용법은 각 html tag에 id 값을 부여해야 하는 단점이 있었다. 이는 고유한 값이어야할 id가 다른 tag에서도 사용될 가능성을 야기하기에 이를 방지하기 위해 HOF를 사용한다.