서버에서 페이지를 만들 필요가 없으므로 (서버의 성능에 도움) CDN에 캐싱이 가능
캐싱
: 파일의 복사본을 캐시 또는 임시 저장 위치에 저장하여 보다 빠르게 access할 수 있도록 하는 프로세스이다.
따라서 CDN캐싱
이라는 것은 원본 서버보다 최종 사용자에게 더 가까운 프록시 서버에 콘텐츠들(파일, 코드, 이미지, 비디오파일 등)을 캐시하여 요청자에게 보다 빠르게 콘텐츠를 전달하는 기술을 말한다.
프록시 서버
??
** 클라이언트로부터 요청을 받아 다른 서버로 전달해주는 서버
** 고도의 소프트웨어 설계
주로 History API 혹은 URL hash를 이용해 페이지 리로드 없는 페이지 전환을 구현
window event(visibilitychange, popstate, beforeunload 등)을 활용해 페이지 전환 등의 이벤트시 핸들러를 등록
declarative routing for React
react 컴포넌트를 특정 path와 연결하면, 해당하는 path로 진입 시 컴포넌트를 렌더링하게 함.
query, path variable등 url parameter를 얻어 활용함.
/login?email=abc@abcd.com
조건에 맞지 않을 경우 redirect
<Redirect to='/register' />
페이지 이동 시 이벤트 핸들러를 등록
history.listen(cb())
nested route를 구현
...
return (
<BrowserRouter>
<Switch>
<Route path='/about'><AboutPage /></Route>
<Route path='/contact'><ContactPage /></Route>
<Route path='/'><HomePage /></Route>
</Switch>
</BrowserRouter>
)
....
<코드해설>
BrowserRouter로 감싸 router context 제공
route 로 path 정의하고 그 안에 렌더링 할 컴포넌트 넣음
link로 특정 페이지 이동시 리로드 없이 페이지가 이동
switch로 매칭되는 라우트 맨 위의 하나의 컴포넌트를 렌더링 함. 정확히 일치하는 것 원하면 exact 사용!