【发布时间】:2018-08-09 15:26:03
【问题描述】:
我有一个使用 vue-router 包的简单 vue 应用程序,其中包含 3 条路由。假设主页有 3 个大方形列,大约一个大文本块和一个包含 4 个表单行的表单。
当我在<router-view/> 元素周围使用默认的<transition/> 元素时,它会很好地淡入淡出,但我希望每条路线都有特定的动画。主页应该错开 3 个块,关于应该从顶部淡入大文本块和联系人应该错开表单字段。
我该怎么做? 我尝试使用 javascript 钩子 (https://vuejs.org/v2/guide/transitions.html#JavaScript-Hooks),但我无法让它工作。
routes.js
import home from './components/Home.vue';
import about from './components/About.vue';
import contact from './components/Contact.vue';
export default [
{ path: '/', component: home },
{ path: '/about', component: about },
{ path: '/contact', component: contact }
];
App.vue
<template>
<router-view></router-view>
</template>
<script>
export default {
data () {
return {
}
}
}
</script>
<style>
</style>
Home.js
<template>
<transition>
<div id="intro">
<div class="columns">
<div class="column">
Column 1
</div>
<div class="column">
Column 2
</div>
<div class="column">
Column 3
</div>
</div>
</div>
</transition>
</template>
<script>
export default {
data () {
return {
}
},
methods: {
beforeEnter: function (el) {
alert('before');
}
},
}
</script>
<style scoped>
</style>
我希望 beforeEnter 方法会起作用,但事实并非如此......
【问题讨论】:
标签: javascript vue.js transition vue-router