这里,我用一个注册登录两组件的切换实例来演示:

切换方式一

<!DOCTYPE html>
<html lang="zh-CN"> <head>
<meta charset="UTF-8" />
<title>独秀不爱秀</title>
</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 src="./lib/vue-2.4.0.js"></script> <script type="text/javascript">
Vue.component('login', {
template: '<h3>登录组件</h3>'
}); Vue.component('register', {
template: '<h3>注册组件</h3>'
}); const vm = new Vue({
el: '#app',
data: {
flag: true
},
});
</script>
</body> </html>

这个方式唯一的缺陷就是只能在两个组件之前切换,当要求需要三个及三个以上的组件切换的时候,这就不行了(原因是 flag 只有 true 和 false 两个值),这就要要使用 方式二了。

切换方式二

这里,我们需要学到一个 Vue 官方 提供的 元素 component。

<!DOCTYPE html>
<html lang="zh-CN"> <head>
<meta charset="UTF-8" />
<title>独秀不爱秀</title>
</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 src="./lib/vue-2.4.0.js"></script> <script type="text/javascript">
// 组件名称是字符串
Vue.component('login', {
template: '<h3>登录组件</h3>'
}); Vue.component('register', {
template: '<h3>注册组件</h3>'
}); const vm = new Vue({
el: '#app',
data: {
comName: 'login'// 当前 component 中的 :is 绑定的组件名称
},
});
</script>
</body> </html>

现在,我们在添加一个退出组件(这是为了证明第二种组件切换方式的好处)

<!DOCTYPE html>
<html lang="zh-CN"> <head>
<meta charset="UTF-8" />
<title>独秀不爱秀</title>
</head> <body>
<div id="app">
<a href="#" @click.prevent="comName = 'login'">登录</a>
<a href="#" @click.prevent="comName = 'register'">注册</a>
<a href="#" @click.prevent="comName = 'out'">退出</a>
<!--
Vue 提供的 component 来展示对应名称的组件
component 是一个占位符
:is 属性指定 组件名称
-->
<component :is="comName"></component>
</div> <script src="./lib/vue-2.4.0.js"></script> <script type="text/javascript">
// 组件名称是字符串
Vue.component('login', {
template: '<h3>登录组件</h3>'
}); Vue.component('register', {
template: '<h3>注册组件</h3>'
}); Vue.component('out', {
template: '<h3>退出组件</h3>'
}); const vm = new Vue({
el: '#app',
data: {
// 默认显示 登录组件
comName: 'login'// 当前 component 中的 :is 绑定的组件名称
},
});
</script>
</body> </html>

切换成功。

最新文章

  1. setAlpha与View Layer关系
  2. Android SDK 4.0.3 开发环境配置及运行
  3. 《A Tour of PostgreSQL Internals》学习笔记——进程间通信
  4. 如何使用MIME类型
  5. cocos2d-x把json数据解析到数组或字典中(libjson库)
  6. Flask+Mysql搭建网站之数据库问题
  7. CentOs 安装 Nginx + php + mysql (推荐方式)
  8. SpringMVC表单标签
  9. 机房收费系统——转换list泛型时,字段名称不正确应出现故障
  10. http头部 Expect
  11. 生成统计数据并导出Excel
  12. 学了3天EOS, 其它没学会,就学会了发私人数字币
  13. c# 号码记录,车友
  14. 原生JavaScript插件编写指南(转载)
  15. Tomcat 启动成功后报 INFO [Timer-0] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access:
  16. 3种方法轻松处理php开发中emoji表情的问题
  17. Swift UIImageView和UISlider组合
  18. python with和上下文管理工具
  19. Ubuntu Apache配置及开启mod_rewrite模块
  20. Android多线程分析之中的一个:使用Thread异步下载图像

热门文章

  1. excel隔行选中内容如何操作
  2. js面向对象的笼统介绍
  3. Splay的基本操作(插入/删除,查询)
  4. 【数论】[圆点坐标]P2508圆上的整点
  5. Educational Round 66 题解
  6. mysql实现行转列功能
  7. Spring Boot 知识笔记(servlet、监听器、拦截器)
  8. UA记录
  9. zabbix php-fpm监控
  10. 《BLACK HAT PYTHON3》