【发布时间】:2018-10-27 19:02:33
【问题描述】:
我正在尝试使用 Vue 和 Vue-Router 进行漂亮的页面转换。
我直接在 router-view 中加载不同的页面(组件),它们的动画效果很好。
我已经为我的所有页面制作了很棒的动画,但是我需要弄清楚如何根据单击的路由器链接简单地更改过渡。
如果 route-link 的类很特殊,再做一个动画。
App.vue
<template>
<div id="app">
<nav>
<router-link to="/1">Page 1</router-link>
<router-link to="/2">Page 2</router-link>
<router-link to="/3">Page 3</router-link>
<router-link class="special" to="/4">Page 4</router-link>
</nav>
<transition @enter="enter" @leave="leave">
<router-view/>
</transition>
</div>
</template>
<script>
export default {
...
methods: {
enter(el, done) {
// main page animation with a timeline using Greensock
},
leave(el, done) {
// main page animation with a timeline using Greensock
}
},
}
</script>
如何让它工作?
如果用户点击带有特殊类的router-link,则更改
<transition @enter="enter" @leave="leave">
<router-view/>
</transition>
收件人:
<transition @enter="enterSpecial" @leave="leaveSpecial">
<router-view/>
</transition>
以便我添加
methods: {
enter(el, done) {
// main page animation with a timeline using Greensock
},
leave(el, done) {
// main page animation with a timeline using Greensock
}
},
我已经通过 docs + google 搜索了,但没有找到任何可以帮助的东西。
【问题讨论】:
-
你能分享任何现场演示吗?
-
不幸的是,并非如此。我在这里过度简化了代码,实际代码非常不同..我只需要找到一种方法来根据单击的路由器链接进行另一个转换。实际的特殊路由器链接位于子组件中。我尝试在路由器链接上使用@click.native 来执行一个函数(更改 vuex 状态,这可以帮助我更改动画),但随后它停止了链接的实际重定向。
-
没问题,我个人需要现场演示来确保给定的答案是否有效。但我仍然相信 vuejs 的每一种情况都可以部分分享。
标签: javascript vue.js vuejs2 vue-router