vue router 기본 개념
2022. 10. 27. 14:52ㆍVue
- router.js
import Home from './views/Home.vue'
router.js에서 home.vue 파일을 가지고 옴.
path: 주소
주소와 연결하는 component를 선언한다.
about.vue 연결을 위해 ABOUT 선언.
import Home from './views/Home.vue'
2. app.vue
라우터가 연결할 장소를 뿌리기 위해 v-content안에
<router-view></router-view>
를 적어준다.
3. about.vue
router-link 작성.
<template>
<div>
This is About Page
클릭
<router-link :to="{name: 'home'}">
클릭
</router-link>
</div>
</template>
화면 전환하는 방법(router)
- router.push를 이용
1)눌렀을때 home으로 이동시키기 위해
<v-list-tile @click="$router.push({name: 'home'})">
와 같이 작성.
2)about으로 이동시키기 위해
<v-list-tile @click="$router.push({name: 'about'})">
와 같이 작성.
path를 이용하여 화면 전환도 가능하다.
<v-list-tile @click="$router.push({path: '/'})">
<v-list-tile @click="$router.push({path: '/about'})">
2. router :to="{name: ''}" exact
router의 속성을 이용한다.
<v-list-tile router :to="{name: 'home'}" exact>
<v-list-tile-action>
<i class="fas fa-home"></i>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>Home</v-list-tile-title>
</v-list-tile-content>
값 전달하기 - parameters
1)router :to="{name: ''}" exact를 이용해 users.vue를 연결한다.
2)Users.vue에 id 값을 적는다.
<template>
<div>
{{ userId }}
</div>
</template>
<script>
export default {
computed: {
userId() {
return this.$route.params
}
}
}
</script>
this.$router와 this.route의 차이점
router: router.js 의 설정값들
route: 현재 주소에 관련된 값들
created() {
console.log('router', this.$router)
console.log('route', this.$route)
}
parameter로 값을 넣는 법
1.app.vue params 객체 안에 값을 넣어야함.
<v-list-tile router :to="{
name: 'users',
params: {
userId: 12343,
name: 'hoho'
}
}" exact>
2. router.js에서 주소창 뒤에 어떤게 들어갈지 객체의 값 설정
{
path: '/users/:userId',
name: 'users',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: Users
}
값 전달하기 - query
- app.vue 에서 query 부분 추가
<v-list-tile router :to="{
name: 'users',
params: {
userId: 4321,
name: 'hoza'
},
query: {
group: 'member',
category: 'trial'
}
}" exact>
'Vue' 카테고리의 다른 글
Vue: v-data-table에 버튼 넣는법 (0) | 2023.02.24 |
---|---|
[Vue] 숫자에 세자리 마다 콤마 찍는법 (0) | 2023.02.20 |
v-text-field 양수만 입력하는법 (0) | 2023.02.17 |
vue 오류: Could not find a declaration file for module 'vue-xxx' (0) | 2023.02.10 |
[Vue] Vuex ( state, getter, mapGetters, mapstate) (0) | 2022.11.02 |