일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- sql내장함수
- SQL데이터타입
- 반별이벤트
- 빅데이터분석기사필기
- sql
- 백엔드개발
- 백엔드개발교육과정
- 빅분기
- 전문가특강
- KB국민은행
- 빅분기필기
- kb 기자단
- kb it's your life 기자단
- kb취업교육
- kb it's your life 6기
- kb it's your life
- 멀티캠퍼스
- 이차원배열
- 금융권 부트캠프
- autohotkey
- kbit교육
- 금융권 it
- kb네트워킹캠프
- 빅데이터분석기사
- 데이터분석자격증
- kb 취업교육
- 금융권it
- prefixsum #C언어
- 첫알고리즘평가
- 부트캠프
- Today
- Total
지식보부상님의 공부 일지
Vue[10-1] vue-router를 이용한 라우팅 본문
[1] vue-router란
◈ SPA(단일 페이지 애플리케이션: Single Page Application)
- 하나의 페이지 안에서 사용자 경험 제공하는 애플리케이션
- 여러 화면 하나 페이지 안에서 제공 => 화면 별도로 로딩 x
- 화면마다 고유 식별자(URI) 기반으로 화면 렌더링 => vue-router 라이브러리 이용
[2] vue-router의 기본 사용법
◈ createRouter()
- router 객체 생성
- URI 경로에 따라 각각 다른 화면 렌더링 되도록 이를 처리할 컴포넌트 매핑함
- src/router/index.js
import {createRouter, createWebHistory } from 'vue-router'
...
const router = createRouter({
history: createRouter(),
routes:[
{ path:'/', component:Home },
{ path:'/about', components:About },
{ path:'/members', components:Members },
{ path:'/videos', components:Videos },
]
})
export default router;
- history 속성: 라이터가 사용할 라우팅 모드 지정
- routes 속성: 요청 경로에 따라 어떤 컴포넌트 렌더링할지 결정
◈ router 객체의 등록
- router 객체를 사용하기 위해선 Vue 인스턴스에 등록 필요함
- src/main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
const app = createApp(App);
app.use(router);
app.mount('#app');
◈ <RouterView>
- 각 경로별 컴포넌트를 랜더링할 위치 지정
- src/App.vue
<template>
<div>
<header />
<RouterView />
</div>
</template>
◈ <RouterLink to="경로">
- 화면 전환을 위한 링크 생성ㅇ
- <RouterLink to="URI 경로">링크 텍스트</RouterLink>
- <RouterLink :to="변수">링크 텍스트</RouterLink> : URI 경로를 변수에 저장했을 때 사용하는 방식 (v-bind 이용해야)
[3] router객체와 currentRoute 객체
◈ 컴포넌트에서 router 객체 접근하기
- 라우터 객체: const router = useRouter()
- 매칭된 라우트(currentRoute): const currentRoute = useRoute() (관례상 변수명 currentRoute)
- currentRoute 객체 주요 속성
구분 | 설명 |
fullPath | 전체 요청 경로, 쿼리 문자열까지 포함 ex) /about?a=18&b=2 |
matched | VueRouter 객체의 routes 배열의 라우트 중 매칭된 라우트 |
params | URI 경로에 동적으로 전달된 파라미터 정보 |
path | 요청 URI 경로 |
query | 쿼리 문자열 ?a=1&b=2로 요청됐으면 CurrentRoute.query는 {a:1, b:2} 와 같은 객체 |
redirectedFrom | 다른 경로에서 리디렉트된 경우 리디렉트시킨 URI 경로 정보 포함 |
[ 예제 ]
◈ src/router/index.js
- 처음엔 'home' route만 로딩되고, 후에 URI가 요청되면 뒷 route 로딩 (lazy)
◈ src/main.js
◈ src/pages/AboutPage.vue
◈ src/pages/HomePage.vue
◈ src/pages/DynamicPage.vue
◈ src/pages/UserInfo.vue
◈ src/pages/NotFound.vue
◈ src/App.vue
'KB IT's Your Life > Vue' 카테고리의 다른 글
Dolt Node.js [03] 파일 관리하기 (1) | 2025.04.23 |
---|---|
Vue [10-2] vue-router를 이용한 라우팅 (2) | 2025.04.23 |
Vue [09] Composition API (0) | 2025.03.27 |
Vue [08] 컴포넌트 심화 (1) | 2025.03.27 |
Vue [07-2] TodoList 예제 리팩토링 (0) | 2025.03.27 |