Develop/🧡 Vue
Vue 라우터
인피니
2022. 8. 16. 23:28
vue router
//main.js
import Vue from 'vue'
import App from '.App.vue'
import {router} from './routes/index.js'
new Vue({
render: h=>h(App),
router
}).$mount('#App')
//router은 위 코드에서 export 한 router 정보를 담고있는 변수이다.
main.js 는 애플리케이션의 설정들(플러그인&라이브러리,구조)들을 파악할 수 있는 설계도 느낌
routes 폴더를 src 밑에 만들고 해당 폴더에 index.js 라는 파일을 생성하자
VueRouter 객체는 router 에 대한 정보를 관리하는 vueRouter 객체
//index.js
import Vue from 'vue';
import VueRouter from 'vue-router';
import BasicView from '../views/BasicView.vue'
Vue.use(VueRouter);
//Router 객체를 router에 받는다 router 에 Router 객체에 대한 정보가 담겨있음
export const router = new Router({
routes: [
//path: url 주소
//component: url 주소로 갔을 때 표시될 컴포넌트
{
path: '/',
name: 'BasicView' // 라우터의 이름을 추가할 수 있다. this.$route.name으로 해당이름에 접근이 가능하다
component: 'BasicView'
},
{
path:'/',
component:''
},
{
path:'/',
component:''
}
]
});
src 밑에 views라는 폴더를 만든다.
url 마다 뿌려지는 component를 등록한다.
//App.vue
<template>
<div id='app'>
<router-view></router-view> // router-view 부분에 url에 따라 routes/index.js 에 설정된 컴포넌트들이 해당 위치에 오게 된다.
</div>
</template>
redirect 속성
//index.js
import Vue from 'vue';
import VueRouter from 'vue-router';
import BasicView from '../views/BasicView.vue'
Vue.use(VueRouter);
export const router = new Router({
mode: 'history' //history 모드로 등록시 url 에 들어간 # 표시를 제거해준다.
routes: [
//path: url 주소
//component: url 주소로 갔을 때 표시될 컴포넌트
{
path:'/',
redirect:'/scope'
},
{
path:'/scope',
component:'BasicView'
},
{
path:'/',
component:''
}
]
});
redirect 또한 vue 라우터에서 기본으로 제공해준다. path로 들어가면 밑의 redirect url 로 이동시켜 준다.
router-link
router-link는 vue 라우터 내부적으로 router-link를 화면에서 a (앵커)태그로 변환해줌
<router-link to="/scope">T</router-link> //to 는 해당 요소 클릭시 이동하고 싶은 url 을 입력