<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>动画实现组件切换</title>
<script src="lib/vue.min.js"></script>
<style type="text/css">
/* 动画的样式 */
.v-enter,
.v-leave-to{
opacity: 0;
transform: translateX(150px);
}
.v-enter-active,
.v-leave-active{
opacity: 1;
transition: all 0.8s ease;
}
</style>
</head>
<body>
<div id="app">
<!-- 动态改变name,阻止a链接默认行为,使得引用组件名 -->
<a href="" @click.prevent="name='login'">登录</a>
<a href="" @click.prevent="name='register'">注册</a>
<!-- 设置一个待切换的组件名 -->
<!-- 做一个切换的动画 modeout-in让动画效果先出去再进来-->
<transition mode="out-in">
<component :is="name"></component>
</transition>
</div>
<script>
// 登录的全局组件
Vue.component('login',{
template:'<h3>登录</h3>'
})
// 注册的全局组件
Vue.component('register',{
template:'<h3>注册</h3>'
})
var app=new Vue({
el:'#app',
data:{
// 默认为login组件
name:'login'
},
methods:{
}
})
</script>
</body>
</html>