JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdn.bootcss.com/vue-router/0.7.13/vue-router.min.js"></script>
<div id="app">
  <!-- 1. 所有视图统一切换效果示例 -->
 <router-view transition="outLeftInRight"></router-view>
  
  <!-- 2. 各个视图使用各自的切换效果 -->
 <!--  <router-view></router-view> -->
</div>

CSS

body {
  margin: 0;
}
a {
  text-decoration: none;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 56px;
  box-sizing: border-box;
  padding: 8px 4em;
  line-height: 40px;
  text-align: center;
  color: #fff;
  background: #03A9F4;
}
.header .link {
  position: absolute;
  top: 8px;
  color: #fff;
} 
.header .right {
  right: 10px;
}
.header .left {
  left: 10px;
}

.outLeftInRight-transition,
.fadeOutLeft-transition, 
.fadeInLeft-transition {
  transition: transform .3s ease-in-out;
}
/* 进入时的状态,从右开始 */
.outLeftInRight-enter,
.fadeInLeft-enter,
.fadeInLeft-leave {
  transform: translateX(100%);
}
/* 离开时的状态,向左移动 */
.outLeftInRight-leave,
.fadeOutLeft-enter,
.fadeOutLeft-leave {
  transform: translateX(-100%);
}

JavaScript

// 示例1模版

var Main = Vue.extend({
    template: '<div class="header">MainView<a v-link="{ path: \'/search\' }" class="right link">搜索</a></div>'
})

var Search = Vue.extend({
    template: '<div class="header"><a v-link="{ path: \'/\' }" class="left link">〈</a>SearchView</div>'
})


// 示例2
/* var Main = Vue.extend({
    template: '<div class="header" transition="fadeOutLeft">MainView<a v-link="{ path: \'/search\' }" class="right link">搜索</a></div>'
})

var Search = Vue.extend({
    template: '<div class="header" transition="fadeInLeft"><a v-link="{ path: \'/\' }" class="left link">〈</a>SearchView</div>'
}) */

var App = Vue.extend({})

var router = new VueRouter()

router.map({
    '/': {
        component: Main
    },
    '/search': {
        component: Search
    }
})

router.start(App, '#app')