λΌμ°ν
, λΌμ°ν°?
routing : μΉνμ΄μ§κ° μ΄λλ°©λ²
- νμ΄μ§λ₯Ό μ΄λν λ μλ²μ μμ²ν΄ κ°±μ νλ κ²μ΄ μλλΌ, 미리 ν΄λΉ νμ΄μ§λ₯Ό ꡬμ±ν΄λκ³ ν΄λΌμ΄μΈνΈμ λΌμ°ν
μΒ μ΄μ©νμ¬ νλ©΄μ κ°±μ ν©λλ€.
- μ΄λ¬ν λ°©μμ
SPA (Single Page Application)
λΌκ³ λ ν©λλ€.
- λΌμ°ν
μ μ΄μ©νλ©΄ 맀λλ½κ² νλ©΄ μ νμ ν μ μμ΅λλ€.
- Vue, React, Angular λͺ¨λ λΌμ°ν
μ μ΄μ©νμ¬ νλ©΄μ μ νν©λλ€.
- λ¨μ λΌμ°ν
λ§ νμνλ©΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°μ§ μμλ λ©λλ€.
vue-router
- Vue μμ λΌμ°ν
κΈ°λ₯μ ꡬνν μ μλλ‘ μ§μνλ 곡μ λΌμ΄λΈλ¬λ¦¬μ
λλ€.
<router-view>
: νμ΄μ§ νμ νκ·Έ , λ³κ²½λ URLμ λ°λΌ ν΄λΉ μ»΄ν¬λνΈλ₯Ό λΏλ €μ£Όλ μμμ
λλ€.
λΌμ°ν° μ¬μ μ€μ
npm install vue-router
0. Vueμ Vue λΌμ°ν°λ₯Ό import ν©λλ€.
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
1. λΌμ°νΈ μ»΄ν¬λνΈλ₯Ό μ μν©λλ€.
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }
import Foo from '../views/Foo.vue'
import Bar from '../views/user/Bar.vue'
2. λΌμ°νΈλ₯Ό μ μν©λλ€.
- λ°λμ componentμ 맀νλμ΄μΌ ν©λλ€.
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
3. 'routes' μ΅μ
κ³Ό ν¨κ» router μΈμ€ν΄μ€λ₯΄ λ§λλλ€.
const router = new VueRouter({
routes
})
4. λ£¨νΈ μΈμ€ν΄μ€λ₯Ό λ§λ€κ³ mount ν©λλ€.
const app = new Vue({
router
}).$mount('#app')
new Vue({
router,
vuetify,
store,
render: h => h(App)
}).$mount('#app')
- λΌμ°ν°λ₯Ό μ£Όμ
νλ©΄
this.$router
μ νμ¬ λΌμ°ν°(router)λ₯Ό this.$route
λ‘ μ κ·Όν μ μμ΅λλ€.
μ½λ μμ 보λ¬κ°κΈ°
μ μΈμ λ°©μ
<router-link to="path" replace>
: νμ΄μ§ μ΄λ νκ·Έ, νλ©΄μμ <a>
νκ·Έλ‘ μΉνλ©λλ€.
- replaceλ₯Ό μ¬μ©ν κ²½μ° μμ±μΌλ‘ λ£μ΄μ€λλ€.
νλ‘κ·Έλλ° λ°©μ
this.$router.push('/login');
router.replace('path')
: μλ‘μ΄ νμ€ν 리 νλͺ©μ μΆκ°νμ§ μκ³ νμ¬ νλͺ©μ λ체ν©λλ€.
router.go(n)
router.go(1)
router.go(-1)
router.go(3)
router.go(-100)
router.go(100)
<a>
νκ·Έ λμ <router-link>
λ₯Ό μ°λ μ΄μ
- history λͺ¨λμ hashbang λͺ¨λλ μ£Όμ 체κ³κ° λ¬λΌμΒ
<a>
Β νκ·Έλ₯Ό μ¬μ©ν κ²½μ° λͺ¨λ λ³κ²½μ μ£Όμκ°μ μΌμΌμ΄ λ³κ²½ν΄ μ€μΌν©λλ€. νμ§λ§Β λ λ³κ²½ν νμκ° μμ΅λλ€.
- hashbang(#!) : URLμμ λ°κ²¬ν μ μλ νΉμλ¬Έμ "#!" μ
λλ€. (κ΅λ΄μμ κ±°μ μ¬μ©μ μν©λλ€.)
<a>
Β νκ·Έλ₯Ό ν΄λ¦νλ©΄ νλ©΄μ κ°±μ νλλ°Β <router-link>
λ κ°±μ μμ΄ νλ©΄μ μ΄λν μ μμ΅λλ€.