[javascript] Backbone.js에서 네비게이션(Navigation) 구현 방법

Backbone.js는 자바스크립트 애플리케이션을 구조화하는 데 도움을 주는 유용한 프론트엔드 프레임워크입니다. 이 프레임워크를 사용하면 단일 페이지 응용프로그램(SPA)을 구축할 수 있으며, 네비게이션 구현에도 매우 효과적입니다.

여기에서는 Backbone.js를 사용하여 네비게이션 구현을 위한 방법을 안내하겠습니다.

Backbone.Router를 사용한 네비게이션 구현

Backbone.js에서 네비게이션은 Backbone.Router를 사용하여 구현됩니다. Backbone.Router는 URL과 그에 해당하는 액션을 매핑하는 데 사용됩니다.

먼저, Backbone.Router를 상속하여 새로운 라우터 클래스를 생성해야 합니다. 라우터 클래스는 routes 속성을 정의해야 하며, 이는 URL 패턴과 해당하는 액션 메서드를 매핑하는 데 사용됩니다.

var AppRouter = Backbone.Router.extend({
  routes: {
    '': 'home',
    'about': 'about',
    'contact': 'contact'
  },

  home: function() {
    // 홈 페이지 처리 로직
  },

  about: function() {
    // 어바웃 페이지 처리 로직
  },

  contact: function() {
    // 컨택트 페이지 처리 로직
  }
});

위의 예제에서는 루트(''), about, contact URL 패턴을 각각 home, about, contact 액션 메서드와 매핑하였습니다.

다음으로, 애플리케이션의 진입점에서 인스턴스를 생성하고, Backbone.history.start()를 호출하여 네비게이션을 시작해야 합니다.

var appRouter = new AppRouter();
Backbone.history.start();

이제 사용자가 URL을 변경하면, Backbone.Router는 해당하는 액션 메서드를 호출하여 해당 페이지를 처리할 수 있습니다.

네비게이션 요소에 이벤트 바인딩하기

네비게이션 메뉴에서 사용자가 클릭한 경우, 해당 링크를 누르면 URL이 변경되어야 합니다. Backbone.js에서는 이벤트 기반으로 이를 처리할 수 있습니다.

HTML 요소에 Backbone 라우터의 액션 메서드를 호출하는 이벤트를 바인딩합니다. 이벤트 핸들러에서는 navigate() 메서드를 사용하여 URL을 변경할 수 있습니다.

<a href="#about" class="nav-link">About</a>

<script>
$('.nav-link').on('click', function(e) {
  e.preventDefault();
  
  var href = $(this).attr('href');
  appRouter.navigate(href, { trigger: true });

  return false;
});
</script>

위의 예시에서는 about 페이지를 나타내는 링크에 .nav-link 클래스를 지정하고, 클릭 이벤트 핸들러에서 해당 링크를 클릭하면 navigate() 메서드를 호출하여 URL을 변경하고 페이지를 처리합니다.

이제 Backbone.js를 사용하여 네비게이션을 구현하는 방법에 대해 알아보았습니다. Backbone.js는 유연하고 강력한 프론트엔드 프레임워크이므로 SPA 개발에 활용할 수 있습니다. 자세한 내용은 공식 문서를 참조하시기 바랍니다.