Vue 2 with Vue-Router 2

vue.js 와 vue-router를 사용하는 예제입니다.

by ChangJoo Park

HTML

<script src="https://unpkg.com/[email protected]/dist/vue.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vue-router.js"></script>
<div id="router-app">
  <navigation></navigation>
  <router-view></router-view>
</div>

<template id="navigation">
  <div>
    <ul>
      <li>
        <router-link to="/">Home</router-link>
      </li>
      <li>
        <router-link to="/about">About</router-link>
      </li>
    </ul>
  </div>
</template>

<template id="home-index">
  <div>
    <h1>Home</h1>
  </div>
</template>

<template id="about-index">
  <div>
    <h1>About</h1>
    <p>show details</p>
    <ul>
      <li>
        <router-link to="/about/user">User</router-link>
      </li>
      <li>
        <router-link to="/about/company">Company</router-link>
      </li>
    </ul>
    <router-view></router-view>
  </div>
</template>
<template id="about-user">
  <div>
    <h2>About User</h2>
  </div>
</template>
<template id="about-company">
  <div>
    <h2>About Company</h2>
  </div>
</template>

JavaScript

const Navigation = Vue.component('navigation', {
  template: '#navigation'
})

// Router Components
const HomeIndex = Vue.component('home-index', {
  template: '#home-index'
})
const AboutIndex = Vue.component('about-index', {
  template: '#about-index'
})
const AboutUser = Vue.component('about-user', {
  template: '#about-user'
})
const AboutCompany = Vue.component('about-company', {
  template: '#about-company'
})

const routes = [{
  path: '/',
  component: HomeIndex
}, {
  path: '/about',
  component: AboutIndex,
  children: [{
    path: 'user',
    component: AboutUser
  }, {
    path: 'company',
    component: AboutCompany
  }, ]
}]
const router = new VueRouter({
  routes
})

const routerApp = new Vue({
  router,
  el: '#router-app'
})