Vuejs 路由器转换不会发生



我刚刚开始学习vue,并尝试进行路由器转换。然而,当我在页面之间切换时,上面的代码没有任何转换。知道为什么吗?额外的一行,因为stackoverflow不允许我提交其他问题。

<template>
<div id="app">
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link><br><br>
</div>
<transition name="fade" mode="out-in">
<router-view></router-view>
</transition>
</div>
</template>
<script>
</script>
<style>
body {
background-color: #00ffcc;
margin: 0;
padding: 0;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
overflow: hidden;
width: 100vw;
}
#nav {
padding: 30px;
}
#nav a {
font-weight: bold;
color: #2c3e50;
}
#nav a.router-link-exact-active {
color: #42b983;
}
.fade-enter, .fade-leave-to {
opacity: 0;
transform: translateX(2em);
}
.fade-enter-active, .fade-leave-active {
transition: all .3 ease;
}
</style>

问题似乎与CSS代码有关,应该是transition: all 0.3s ease。以下是的工作示例

const Home = { template: '<div>Home</div>' }
const Foo = { template: '<div>Foo</div>' }
const router = new VueRouter({
mode: 'hash',
routes: [
{ path: '/', component: Home },
{ path: '/foo', component: Foo }
]
})
new Vue({
router,
el: '#app',
data: {
msg: 'Hello World'
}
})
body {
background-color: #00ffcc;
margin: 0;
padding: 0;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
overflow: hidden;
width: 100vw;
}
#nav {
padding: 30px;
}
#nav a {
font-weight: bold;
color: #2c3e50;
}
#nav a.router-link-exact-active {
color: #42b983;
}
.router-link-active {
color: red;
}
.fade-enter, .fade-leave-to {
opacity: 0;
transform: translateX(2em);
}
.fade-enter-active, .fade-leave-active {
transition: all 0.3s ease;
}
<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>
<transition name="fade" mode="out-in">
<router-view></router-view>
</transition>
</div>

这里,是上面代码的一个jsfiddle。