【发布时间】:2017-07-11 03:09:35
【问题描述】:
我是 vue 路由器和 vue.js 的新手。我只是尝试在 vue-router 上使用 javascript 转换。为什么在路由更改之前不会触发 beforeLeave 事件?但它与 css 转换按预期工作。它适用于 css 过渡。但它不适用于 javascript 转换...这是 jsfiddle 示例...输入方法按预期工作。但是 beforeLeave 方法没有按预期工作,并且在路由之间没有转换链。请帮忙..
<script src="https://npmcdn.com/vue/dist/vue.js"></script>
<script src="https://npmcdn.com/vue-router/dist/vue-router.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script>
<div id="app">
<router-link to="/">/home</router-link>
<router-link to="/foo">/foo</router-link>
<router-view></router-view>
</div>
这是js
const Home = { template: '<transition v-on:enter="enter" v-on:leave="leave" ><div>Home</div></transition>',
methods:{
enter:function(el, done){
TweenMax.from(el,2,{x:-60,onComplete:done});
},
leave:function(el, done){
TweenMax.to(el,2,{x:60,onComplete:done});
}
}
}
const Foo = { template: '<transition v-on:enter="enter" v-on:leave="leave" ><div>Foo</div></transition>',
methods:{
enter:function(el, done){
TweenMax.from(el,2,{x:-60,onComplete:done});
},
leave:function(el, done){
TweenMax.to(el,2,{x:60,onComplete:done});
}
}
}
const router = new VueRouter({
mode: 'history',
routes: [
{ path: '/', component: Home },
{ path: '/foo', component: Foo }
]
})
new Vue({
router,
el: '#app',
data: {
msg: 'Hello World'
}
})
【问题讨论】:
标签: vue.js vuejs2 vue-router