- Vue 라우터2024년 05월 30일 18시 10분 45초에 업로드 된 글입니다.작성자: 원2728x90반응형
Vue Router는 vue의 공식 클라이언트 사이드 라우팅 솔루션
클라이언트 사이드 라우팅은 싱글 페이지 애플리케이션(SPA)에서 사용자가 보는 콘텐츠에 브라우저 URL을 연결하는 데 사용
사용자가 애플리케이션을 탐색함에 따라 URL이 적절하게 업데이트되지만, 페이지를 서버에서 다시 로드할 필요는 없음
App.vue
<template> <h1>Hello App!</h1> <p> <strong>현재 라우트 경로:</strong> {{ $route.fullPath }} </p> <nav> <RouterLink to="/">홈으로 가기</RouterLink> <RouterLink to="/about">소개로 가기</RouterLink> </nav> <main> <RouterView /> </main> </template>
Vue Router 에서 제공하는 두 컴포넌트
RouterLink - <a> 태그 대신 사용
RouterView - 현재 라우트 컴포넌트를 렌더링할 위치를 Vue Router에 알려줌(현재 URL 경로에 해당하는 컴포넌트)
굳이 App.vue에 있을 필요는 없으며, 레이아웃에 맞게 어디에든 배치할 수 있지만, 어딘가에 포함되어 있어야함
그렇지 않으면 Vue Router가 아무것도 렌더링 하지 않음
라우터 인스턴스 생성
router.js
import { createMemoryHistory, createRouter } from 'vue-router' import HomeView from './HomeView.vue' import AboutView from './AboutView.vue' const routes = [ { path: '/', component: HomeView }, { path: '/about', component: AboutView }, ] const router = createRouter({ history: createMemoryHistory(), routes, })
라우터 인스턴스는 createRouter() 함수를 호출하여 생성됨
routes 옵션은 라우트 자체를 정의, URL 경로를 컴포넌트에 매핑
component 옵션으로 지정된 컴포넌트는 이전의 App.vue 에서 <RouterView> 에 의해 렌더링될 컴포넌트
history 옵션은 라우특다 URL에 어떻게 매핑되는지, 그리고 그 반대의 경우에 대해 제어
예제에서는 createMemoryHistory를 사용하지만 실제 애플리케이션에서는 createWebHistory()나 createWebHashHistory()
를 사용
라우터 플러그인 등록
createApp(App) .use(router) .mount('#app') //or const app = createApp(App) app.use(router) app.mount('#app')
Options API
export default { methods: { goToAbout() { this.$router.push('/about') }, }, }
Composition API
<script setup> import { computed } from 'vue' import { useRoute, useRouter } from 'vue-router' const router = useRouter() const route = useRoute() const search = computed({ get() { return route.query.search ?? '' }, set(search) { router.replace({ query: { search } }) } }) </script>
예제
Vue SFC Playground
play.vuejs.org
가이드
https://router.vuejs.kr/guide/
Vue Router | Vue.js의 공식 라우터
Vue 3에 필요한 최신 공식 라우터
router.vuejs.kr
728x90반응형'JS F- > Vue' 카테고리의 다른 글
중첩된 라우트 (0) 2024.05.31 이름이 있는 라우트 (0) 2024.05.31 Vue Router - 동적 라우트 매칭과 파라미터 (0) 2024.05.31 컴포넌트 기초 (0) 2024.05.29 템플릿 참조 (0) 2024.05.29 감시자 (0) 2024.05.29 다음글이 없습니다.이전글이 없습니다.댓글