Vue3에서는 Vue Router를 사용하여 SPA(Single Page Application)를 구현할 수 있습니다.
Vue Router는 여러 개의 컴포넌트를 페이지 단위로 관리하며, URL에 따라 적절한 컴포넌트를 렌더링하여 보여줍니다.
Vue Router 설치
Vue CLI를 사용하여 프로젝트를 생성할 때 Vue Router를 추가로 설치할 수 있습니다.
이미 생성된 프로젝트에 Vue Router를 추가하려면 다음 명령어를 실행합니다.
1 | npm install vue-router |
Vue Router 설정
vue router 설치가 완료되면, src 디렉토리 안에 router 디렉토리를 생성하고,
그 안에 index.js 파일을 생성하여 Vue Router를 설정할 수 있습니다.
1 | import { createRouter, createWebHistory } from 'vue-router' |
Vue Router 사용
설정이 완료되면, 아래와 같이 main.js 파일에서 Vue Router를 import하여 Vue 애플리케이션에 추가합니다.
1 | import { createApp } from 'vue' |
그리고 애플리케이션의 App.vue 파일에서
1 | <template> |
이렇게 Vue Router를 사용하면,
URL에 따라 다양한 컴포넌트를 렌더링하고,
사용자의 브라우징 이력을 관리할 수 있습니다.
이는 SPA에서 페이지 간의 이동을 구현하는 데 필수적인 기능입니다.
vue router params, dynamic route
디자인이 똑같은 페이지에서, 내용만 같은 경우가 있습니다.
예를 들어, 아래와 같이 게시판 같이 게시글 1/2/3의 내용은 다음과 같은 url을 가질 수 있습니다.
/board/1
/board/2
/board/3
이럴 때, url에서 param값을 받아들일 수 있도록 dynamic route를 사용할 수 있습니다.
1 | const routes = [ |
vue router 페이지 이동, vue router 뒤로가기, vue router push
vue router에서 페이지 이동을 하는 방법은 아래와 같이,
컴포넌트에서 router-link 태그를 이용하면 페이지 이동을 하는 요소를 만들어 줍니다.
1 | <router-link :to="..."> |
programatical하게 페이지 이동을 하려면 router의 push/replace/go 메소드를 사용하면 됩니다.
push : URL 이동. 히스토리 스택에 추가
replace : URL 이동. 현재 페이지를 대체하므로 히스토리 스택에 추가되지 않음.
go : 히스토리 이동. 숫자만큼 앞, 뒤로 가기
예제코드는 아래와 같습니다.
1 | import { useRouter} from 'vue-router' |
vue router push 데이터 전달
vue router push (페이지 이동) 화면에서 데이터 전달하는 방법은 아래와 같이 params나 query를 쓸 수 있습니다.
1 | import { useRouter} from 'vue-router' |
#javascript, #vue, #vue3, #router