์ปดํฌ๋ํธ์์ $route๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๊ฐ URL์ ์์กด์ ์ด๊ฒ ๋์ด ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๋๋ค.
์ด ์์กด์ฑ์ ์ ๊ฑฐํ๊ธฐ ์ํด์ props ์ต์ ์ ์ฌ์ฉํฉ๋๋ค.
const User = {
template: '<div>User {{ $route.params.id }}</div>'
}
const router = new VueRouter({
routes: [
{ path: '/user/:id', component: User }
]
})
const User = {
props: ['id'],
template: '<div>User {{ id }}</div>'
}
const router = new VueRouter({
routes: [
{ path: '/user/:id', component: User, props: true },
]
})
URL์ ๋ํ ์์กด์ฑ์ด ์ ๊ฑฐ๋๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์ฌ์ฌ์ฉ์ด๋ ํ ์คํธ๊ฐ ์ฝ์ต๋๋ค.
์ด๋ฆ์ ๊ฐ์ง๋ ๋ทฐ๋ฅผ ์ฌ์ฉํ ๋๋ ๊ฐ๊ฐ์ ๋ทฐ์ props ์ต์ ์ ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
const router = new VueRouter({
routes: [
{
path: '/main',
components: {
default: Main,
header: Header,
footer: Footer
},
props: { default: true, header: false, footer: false }
}
]
})
const router = new VueRouter({
routes: [
{
path: '/main',
components: {
default: Main,
header: Header,
footer: Footer
},
props: {
footer: { backgroundColor: 'black' }
}
}
]
})
const router = new VueRouter({
routes: [
{ path: '/search', component: SearchUser, props: (route) => ({ user: route.query.id }) }
})
const router = new VueRouter({
mode: 'history',
routes: [...]
})
watch: {
// ๋ผ์ฐํฐ ๊ฐ์ฒด๋ฅผ ๊ฐ์ํ๊ณ ์๋ค๊ฐ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
'$route': 'function ์ด๋ฆ'
},
{
// will match everything
path: '*'
}
{ // will match anything starting with `/user-`
path: '/user-*'
}
*
์ ๋งค์นญ๋ฉ๋๋ค.user-*
์ ๋งค์นญ๋ฉ๋๋ค.Vue ๋ผ์ฐํฐ์ ๋ชจ๋๋ฅผ 'history'๋ชจ๋๋ก ํ ๊ฒฝ์ฐ jsํ์ผ์ ์ ์ํ Vue Routing์ path๋ก ํด๋ผ์ด์ธํธ๋ฅผ ํต์ ํฉ๋๋ค.
ํ์ง๋ง, ์ด๊ฒ์ ์ค์ ๋ก ํ๋์ ํ์ด์ง์ด๊ณ ๋๋จธ์ง๋ ๊ฐ์์ผ ๋ฟ์
๋๋ค. ๋ฐ๋ผ์ ๋ผ์ฐํ
๋ ์ปดํฌ๋ํธ๋ค์ด ์๋ฒ์ ์ค์ ๋ก ๊ทธ ์ฃผ์์ ์กด์ฌํ๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์๋ก๊ณ ์นจ์ ํ ๊ฒฝ์ฐ HTTPํต์ ์์ ์๋ต์ ๋ฐ์ง ๋ชปํ๋ฏ๋ก '404 Not Found'๊ฐ ๋จ๋ ๊ฒ์
๋๋ค.