๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/Vue

Vue router

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2022. 6. 6.
๋ฐ˜์‘ํ˜•

Vue router๋Š” vue์—์„œ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

 

Vue router๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ํ•„์š”ํ•œ ํŠน์ˆ˜ ํƒœ๊ทธ์˜ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํƒœ๊ทธ ์„ค๋ช…
<router-link to="URL ๊ฐ’"> ํŽ˜์ด์ง€ ์ด๋™ ํƒœ๊ทธ. ํ™”๋ฉด์—์„œ๋Š” <a>๋กœ ํ‘œ์‹œ๋˜๋ฉฐ ํด๋ฆญํ•˜๋ฉด URL๋กœ ์ด๋™ํ•œ๋‹ค.
<router-view> ํŽ˜์ด์ง€ ํ‘œ์‹œ ํƒœ๊ทธ. ๋ณ€๊ฒฝ๋˜๋Š” URL์— ๋”ฐ๋ผ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฟŒ๋ ค์ฃผ๋Š” ์˜์—ญ.

 

 

 

<!DOCTYPE html>
<head>
  <title>Vue router</title>
</head>
<body>
  <div id="app">
    <h1>๋ทฐ ๋ผ์šฐํ„ฐ ์˜ˆ์ œ</h1>
    <p>
      <router-link to="/main">Main ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™</router-link>
      <router-link to="/login">Login ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™</router-link>
    </p>
    <router-view></router-view>
  </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router@3.0.1/dist/vue-router.js"></script>
  <script>
    var Main = {template: '<div>main</div>'}
    var Login = {template: '<div>Login</div>'}

    var routes = [
      { path: '/main', component: Main },
      { path: '/login', component: Login }
    ]

    var router = new VueRouter({
      routes
    })

    var app = new Vue({
      router
    }).$mount('#app')
  </script>
</body>
</html>

 

 

var app = new Vue({
  router
}).$mount('#app')

์ด ๋ถ€๋ถ„์€ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ผ์šฐํ„ฐ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด router๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

์—ฌ๊ธฐ์„œ $mount()๋Š” el ์†์„ฑ๊ณผ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๋ฅผ ํ™”๋ฉด์— ๋ถ™์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ el ์†์„ฑ์„ ๋„ฃ์ง€ ์•Š์•˜๋”๋ผ๋„ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜์„œ $mount()๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ•์ œ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ํ™”๋ฉด์— ๋ถ™์ผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€