Vue Router란 무엇인가요?
_____A1: Vue Router는 Vue.js 애플리케이션에서 SPA(Single Page Application) 내의 라우팅을 관리해주는 공식 라이브러리입니다. URL과 컴포넌트를 연결하여 사용자가 애플리케이션 내에서 페이지를 이동할 수 있게 도와줍니다.
Q2: Vue Router를 사용하는 이유는 무엇인가요?
A2: SPA에서는 전통적인 페이지 이동 없이 동적으로 콘텐츠를 변경하므로 URL 관리가 복잡할 수 있습니다. Vue Router는 URL 경로와 Vue 컴포넌트를 매핑하여 사용자가 주소창을 통해 직접 특정 페이지에 진입하거나, 페이지 이동 시 URL이 적절히 변경되도록 지원합니다.
Q3: Vue Router의 주요 기능은 무엇인가요?
A3:
- URL과 컴포넌트 간 매핑
- 중첩 라우팅 및 동적 라우팅 지원
- 네비게이션 가드(진입·이탈 제어)
- 프로그래밍 방식의 라우팅
- 히스토리 모드 및 해시 모드 지원
- 라우트 매개변수 및 쿼리 파라미터 관리
Q4: Vue Router는 Vue.js 버전에 따라 다르나요?
A4: 네, Vue 2.x용 Vue Router와 Vue 3.x용 Vue Router(버전 4.x)가 별도로 존재합니다. Vue 3용 Vue Router는 Composition API를 적극 활용할 수 있도록 설계되었습니다.
Q5: Vue Router 설치 방법은 어떻게 되나요?
A5:
```bash
npm install vue-router
```
또는
```bash
yarn add vue-router
```
그리고 Vue 앱에 다음과 같이 등록합니다:
```javascript
import { createRouter, createWebHistory } from 'vue-router'
const routes = [ /* 라우트 정의 */ ]
history: createWebHistory(),
routes,
})
const app = createApp(App)
app.use(router)
app.mount(' app')
```
Q6: Vue Router에서 라우트를 어떻게 정의하나요?
A6: 라우트는 객체 형태로 path와 그에 매칭되는 컴포넌트를 지정합니다. 예:
```javascript
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About },
{ path: '/user/:id', component: UserProfile }, // 동적 라우팅
]
```
Q7: Vue Router에서 네비게이션 가드란 무엇인가요?
A7: 네비게이션 가드는 라우트 변경 전에 특정 로직을 실행하거나 접근을 제어할 수 있는 함수입니다. 예를 들어 로그인 여부 확인 후 접근 제한을 걸 수 있습니다. `beforeEach`, `beforeEnter` 같은 훅을 제공합니다.
Q8: Vue Router의 히스토리 모드와 해시 모드 차이는 무엇인가요?
A8:
- 히스토리 모드: 브라우저의 History API를 사용해 URL이 깔끔하며, 서버 설정이 필요할 수 있음. 예: `/about`
- 해시 모드: URL에 ` `를 사용해 라우팅 정보를 전달하며 서버 설정 필요 없음. 예: `/ /about`
Q9: Vue Router로 동적 라우팅은 어떻게 구현하나요?
A9: 경로에 콜론(`:`)을 이용해 변수명을 넣어 정의합니다. 예: `/user/:id`
`this.$route.params.id` 또는 Composition API의 `useRoute()`로 접근 가능합니다.
Q10: Vue Router를 사용하면 SEO에 영향을 주나요?
A10: SPA 특성상 기본적으로 SEO에 불리할 수 있으나, SSR(서버 사이드 렌더링)이나 프리렌더링과 함께 사용하면 SEO 개선이 가능합니다. 또한 각 라우트에 맞는 타이틀과 메타 태그 설정을 라우트별로 동적으로 관리할 수 있습니다.
작성자:
김현우 [비회원]
| 작성일자: 1년 전
2024-09-14 17:14:39
조회수: 125 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 125 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.