vue-router 2 template

Template for vue-router 2

by zoomieos

HTML

<script src="https://npmcdn.com/vue/dist/vue.js"></script>
<script src="https://npmcdn.com/vue-router/dist/vue-router.js"></script>

<div id="app">
  <router-link to="/">/home</router-link>
  <router-link to="/foo">/foo</router-link>
  <router-link to="/bar">/bar</router-link>
  <router-view></router-view>
</div>

Babel + JSX

const Home = { 
  template: '<div><router-view></router-view></div>',
  watch: {
    $route(to, from) {
      console.log('after', this.$route.path);
    }
  },
  beforeRouteUpdate(to, from, next) {
    console.log('before', this.$route.path);
    next();
  } 
}
const Foo = { template: '<div>Foo</div>' }
const Bar = { template: '<div>Bar</div>' }

const router = new VueRouter({
  mode: 'history',
  routes: [
    { 
      path: '/',
      component: Home,
      children: [ 
		    { path: '/foo', component: Foo },
		    { path: '/bar', component: Bar }
      ]
    },
  ]
})

new Vue({
	router,
  el: '#app',
  data: {
    msg: 'Hello World'
  },
  created() {
    this.$router.push({ path: '/' })
  }
})