Vue.js 를 배워보자/5. 라우팅

네비게이션 링크

_Blue_Sky_ 2024. 10. 5. 10:20
728x90
728x90

 

Vue.js 네비게이션 링크: 상세 가이드

소개

Vue.js에서 페이지 간 이동을 위한 핵심 요소인 네비게이션 링크에 대해 깊이 있게 알아보겠습니다. Vue Router와 함께 사용되는 네비게이션 링크는 싱글 페이지 애플리케이션(SPA)에서 사용자 인터페이스를 구성하는 데 필수적인 역할을 합니다. 이 글에서는 네비게이션 링크의 기본 개념부터 활용 방법, 그리고 다양한 예시를 통해 심층적으로 다룰 것입니다.

Vue Router와 네비게이션 링크

Vue Router는 Vue.js의 공식 라우터로, URL에 따라 다른 컴포넌트를 렌더링하는 기능을 제공합니다. 네비게이션 링크는 이러한 라우팅 시스템의 핵심 구성 요소입니다.

  • <router-link> 컴포넌트:
    • <a> 태그를 대체하여 사용됩니다.
    • to 속성을 통해 이동할 경로를 지정합니다.
    • 클릭 시 Vue Router가 해당 경로로 이동하며 브라우저의 URL도 변경됩니다.
728x90

네비게이션 링크 사용법

<template>
  <div>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
  </div>
</template>
 

위 코드는 Home과 About 페이지로 이동하는 두 개의 링크를 생성합니다. to 속성에 지정된 경로는 Vue Router에서 정의된 라우트와 일치해야 합니다.

동적 라우팅

네비게이션 링크를 통해 동적으로 데이터를 전달할 수 있습니다.

<router-link :to="{ name: 'user', params: { id: userId } }">
  User Profile
</router-link>
 

위 예시에서 userId는 동적 데이터이며, name 속성을 통해 라우트 이름을 지정하고 params 객체를 통해 파라미터를 전달합니다.

액티브 클래스 적용

현재 활성화된 링크에 특별한 스타일을 적용하려면 router-link-active 클래스를 사용합니다.

<router-link to="/" active-class="active">Home</router-link>
 

프로그래매틱 네비게이션

JavaScript 코드를 통해 직접 네비게이션을 수행할 수 있습니다.

this.$router.push('/about')
 

네비게이션 가드

네비게이션 전에 특정 조건을 검사하여 이동을 허용하거나 막을 수 있습니다.

const router = new VueRouter({
  routes: [
    // ...
  ],
  beforeRouteEnter(to, from, next) {
    // 이동 전에 실행되는 가드
    next()
  }
})
 

고급 기능

  • 네임드 라우트: 라우트에 이름을 부여하여 관리를 용이하게 합니다.
  • 네스트된 라우트: 다중 레벨의 라우팅 구조를 구성합니다.
  • History 모드: 브라우저의 히스토리 API를 사용하여 URL을 관리합니다.
  • Hash 모드: URL 해시를 사용하여 라우팅을 처리합니다.

실제 예시

  • 사이드바 메뉴: 다양한 페이지로 이동하는 링크를 모아놓은 사이드바를 구현할 수 있습니다.
  • Pagination: 페이지네이션 기능을 구현하여 많은 데이터를 효율적으로 관리할 수 있습니다.
  • 검색 결과 페이지: 검색어를 기반으로 특정 페이지로 이동할 수 있도록 구현합니다.

결론

Vue.js의 네비게이션 링크는 간단하면서도 강력한 기능을 제공합니다. 이를 통해 사용자는 웹 애플리케이션 내에서 원활하게 이동하며 다양한 콘텐츠를 탐색할 수 있습니다. 본 가이드를 통해 네비게이션 링크의 기본 개념부터 고급 기능까지 숙달하고, 더욱 풍부하고 역동적인 Vue.js 애플리케이션을 개발해 보세요.

 

728x90
728x90

'Vue.js 를 배워보자 > 5. 라우팅' 카테고리의 다른 글

네비게이션 가드  (0) 2024.10.05
라우트 설정  (0) 2024.10.05
Vue Router  (0) 2024.10.05