在 Vue 中,Vue 路由(vue-router) 组件切换时,可以使用动画效果。Vue 路由(vue-router) 组件切换要实现动画效果,只需要将 router-view 标签使用 transition 标签包裹起来即可。
<style>
.v-enter,
.v-leave.to{
opacity: 0;
transform: translateX(150px);
}
.v-enter-active,
.v-leave-active{
transition: all 0.5s ease;
}
</style>
<body>
<div id="app">
<transition mode="out-in">
<router-view></router-view>
</transition>
</div>
</body>
只需要将 router-view 标签使用 transition 标签包裹起来即可实现路由切换时的动画效果。
将 router-view 标签使用 transition 标签包裹起来实现路由切换时的动画效果
<!DOCTYPE html>
<html>
<head>
<title>Vue路由(vue-router)动画</title>
<script type="text/javascript" src="./lib/vue-2.6.10.min.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<style>
.myactive{
color:red;
font-weight: 100;
font-style: italic;
font-size: 20px;
text-decoration: underline;
}
.v-enter,
.v-leave.to{
opacity: 0;
transform: translateX(150px);
}
.v-enter-active,
.v-leave-active{
transition: all 0.5s ease;
}
</style>
<body>
<div id="app">
<router-link to="/login">登录</router-link>
<router-link to="/register">注册</router-link>
<transition mode="out-in">
<router-view></router-view>
</transition>
</div>
<p>嗨客网(www.haicoder.net)</p>
</body>
<script type="text/javascript">
var login = {
template: '<h1>登录组件</h1>'
}
var register = {
template: '<h1>注册组件</h1>'
}
var routerObj = new VueRouter({
routes: [
{path: "/", redirect: '/login'},
{path: "/login", component: login},
{path: "/register", component: register}
],
linkActiveClass:'myactive'
})
var vm = new Vue({
el : '#app',
data:{
msg: "嗨客网"
},
router: routerObj
});
</script>
</html>
程序运行后,浏览器显示效果如下:
我们在点击超链接,实现路由切换的时候,组件切换的过程会有动画效果。
在 Vue 中,Vue 路由(vue-router) 组件切换时,可以使用动画效果。Vue 路由(vue-router) 组件切换要实现动画效果,只需要将 router-view 标签使用 transition 标签包裹起来即可。