<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
</style>
</head>
<body>
<div id="app">
<a href="" @click.prevent="flag=true">登录</a>
<a href="" @click.prevent="flag=false">注册</a>
<login v-if="flag"></login>
<register v-else="flag"></register>
</div>
<script>
Vue.component("login",{
template:"<h3>登录组件</h3>",
})
Vue.component("register",{
template:"<h3>注册组件</h3>",
})
var vm = new Vue ({
el:'#app',
data:{
flag:true
},
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
</style>
</head>
<body>
<div id="app">
<a href="" @click.prevent="comName='login'">登录</a>
<a href="" @click.prevent="comName='register'">注册</a>
<!-- Vue提供了component来展示对应名称的组件 -->
<!-- component是一个占位符,:is属性可以用来指定要展示的组件的名称 -->
<component :is="comName"></component>
</div>
<script>
Vue.component("login",{
template:"<h3>登录组件</h3>",
})
Vue.component("register",{
template:"<h3>注册组件</h3>",
})
var vm = new Vue ({
el:'#app',
data:{
comName:'login'//当前component中的:is绑定的组件的名称
},
});
</script>
</body>
</html>
组件切换动画
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
.v-enter,
.v-leave-to{
opacity: 0;
transform:translateX(150px);
}
.v-enter-active,
.v-leave-active{
transition:all 0.5s ease;
}
</style>
</head>
<body>
<div id="app">
<a href="" @click.prevent="comName='login'">登录</a>
<a href="" @click.prevent="comName='register'">注册</a>
<!-- Vue提供了component来展示对应名称的组件 -->
<!-- component是一个占位符,:is属性可以用来指定要展示的组件的名称 -->
<!-- 通过mode属性设置组件切换的时候的模式 -->
<transition mode="out-in">
<component :is="comName"></component>
</transition>
</div>
<script>
Vue.component("login",{
template:"<h3>登录组件</h3>",
})
Vue.component("register",{
template:"<h3>注册组件</h3>",
})
var vm = new Vue ({
el:'#app',
data:{
comName:'login'//当前component中的:is绑定的组件的名称
},
});
</script>
</body>
</html>