vue-router 2 template

Template for vue-router 2

by Dmitri Ganenco

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="/user/John">/User John</router-link>
  <router-link to="/me">/me</router-link>

  <router-view></router-view>
</div>

Babel + JSX

const Home = { template: '<div>Home</div>' }
const Foo = { template: '<div>Foo</div>' }
const User = { template: '<div>User {{ $route.params.username }}</div>' }
const Profile = { template: '<div>Profile</div>' }
const someWhereFromSessionUserName = 'ME';

const router = new VueRouter({
  mode: 'history',
  routes: [
    { path: '/', component: Home },
    { path: '/foo', component: Foo },
		{ path: '/user/:username', component: User, children: [
      {
        name: 'user-profile',
        path: 'profile',
        component: Profile,
      },
    ]}
  ]
});

router.beforeEach((to, from, next) => {
  debugger;
	if(to.path === '/me') {
		next(`/user/${someWhereFromSessionUserName}`)
	}else{
		next();
	}
})

new Vue({
	router,
  el: '#app',
  data: {
    msg: 'Hello World'
  }
})