URL을 상태로 설계
현재 페이지, 필터, 상세 id처럼 공유 가능한 상태는 query나 path에 넣고, 일시적 UI 상태는 history state에 둡니다.
주소 계약pushState는 주소만 바꾸는 기능이 아닙니다. URL을 상태의 공개 표현으로 삼고, popstate에서 이전 화면을 복원하며, 새로고침과 직접 접근을 서버가 같은 앱으로 돌려줘야 라우팅이 완성됩니다.
현재 페이지, 필터, 상세 id처럼 공유 가능한 상태는 query나 path에 넣고, 일시적 UI 상태는 history state에 둡니다.
주소 계약사용자가 뒤로 가기로 돌아가야 하는 이동은 pushState, 리다이렉트나 필터 정규화는 replaceState가 자연스럽습니다.
기록브라우저 뒤로 가기와 앞으로 가기에서 URL을 다시 해석해 화면과 데이터 로드를 맞춥니다.
복원직접 /users/10으로 접속했을 때 404가 아니라 앱 진입점이 내려와야 SPA route가 작동합니다.
배포function navigate(path) {
history.pushState(null, '', path);
renderRoute(location.pathname);
overflow-wrap: break-word;
word-break: keep-all;
}
window.addEventListener('popstate', () => renderRoute(location.pathname));