목록 보기
라이브러리 없이 라우터(Router) 만들기
프론트엔드

라이브러리 없이 라우터(Router) 만들기

두줄요약

바닐라 JavaScript로 Fragment 해시 기반 SPA 라우터를 구현하는 과정을 소개했습니다. 경로 등록, 페이지 전환, 프로그래밍 이동, path parameter 추출을 다뤘습니다.

구조와 흐름

  • Fragment 해시와 hashchange 이벤트 기반의 바닐라 JavaScript SPA 라우팅
  • 경로·컴포넌트 매핑을 저장하는 routes 레지스트리와 addRoute, start 메서드
  • 해시 변경 감지 후 현재 경로에 대응하는 컴포넌트 렌더링

선택 이유

  • 서버 요청·페이지 새로고침 없이 동작하는 Fragment 해시 특성
  • 새로고침·리다이렉션 시 엔트리 포인트 요청으로 별도 404 서버 설정 부담 감소
  • 브라우저 호환성 확보를 위한 해시 라우터 선택

해결 방법

  • data-navigate 클릭 이벤트와 navigate 메서드를 통한 프로그래밍 방식 이동
  • location.replace 옵션으로 히스토리 미적재 이동 지원
  • 정규표현식으로 :name, :song 경로 패턴 매칭 및 파라미터 객체 추출

적용해볼 점

  • navigate에 상태 전달 기능 추가 가능성
  • 정규표현식 기반 쿼리 문자열 식별 기능 확장
  • History API 학습을 통한 브라우저 라우터 구현 확장

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#JavaScript 주제를 이어서 읽기

라이브러리 없이 라우터(Router) 만들기

바닐라 JS로 해시 라우터를 직접 구현하는 과정을 설명했습니다. 경로 매핑, navigate, path parameter 추출까지 확장하는 방법을 다뤘습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...