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

切换方式一

<!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>

切换成功。

组件切换方式(Vue.js)的更多相关文章

  1. 第六章 组件 59 组件切换-使用Vue提供的component元素实现组件切换

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  3. VUE.JS组件化

    VUE.JS组件化 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎 ...

  4. Vue.js 2.x:组件的定义和注册(详细的图文教程)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 什么是组件 组件: 组件的出现,就是为了拆分Vue实例的代码量的, ...

  5. Vue系列之 => 组件切换

    组件切换方式一 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. Vue.js 组件编码规范

    本规范提供了一种统一的编码规范来编写 Vue.js 代码.这使得代码具有如下的特性: 其它开发者或是团队成员更容易阅读和理解. IDEs 更容易理解代码,从而提供高亮.格式化等辅助功能 更容易使用现有 ...

  7. Vue.js 学习笔记 第7章 组件详解

    本篇目录: 7.1 组件与复用 7.2 使用props传递数据 7.3 组件通讯 7.4 使用slot分发内容 7.5 组件高级用法 7.6 其他 7.7 实战:两个常用组件的开发 组件(Compon ...

  8. Vue.js——60分钟组件快速入门(上篇)

    组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML ...

  9. Vue.js:轻量高效的前端组件化方案

    转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ...

随机推荐

  1. JMeter【第五篇】关联:5种方法

    前几天在Q群里看到群友发的最近10年性能测试工具使用率的统计,最近的2018年,jmeter+loadrunner占了93%的使用率,说明这两个是主流,其中,jmeter的使用率逐年提升,现在已经超过 ...

  2. 02-docker入门-docker常用的一些命令

    在这里,有必要先对ducker在做一次介绍 ducker 是一个容器. 容器内部运行的是一个系统. 系统内部安装好了要调试 / 发布的工程,然后这个系统被打包成了一个镜像. ducker 就是这个镜像 ...

  3. 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest

    2014-2015 ACM-ICPC, Asia Tokyo Regional Contest A B C D E F G H I J K O O O O   O O         A - Bit ...

  4. freeradius编译安装+mysql配置

    参考文档: freeradius 官网的wikihttp://wiki.freeradius.org/Home ubuntu freeradius搭建教程 http://yustanto.com/fr ...

  5. 阿里云centos 7上面安装mysql5.7的详细步骤!!!

    前言: 网上太多的linux 的安装mysql教程,很多教程不全或者因为环境不一致导致无法成功安装,以下是亲测的可行性的方法,请参考. 步骤: Centos7操作系统YUM库列表里默认不再提供MySQ ...

  6. Pandas | 01 数据结构

    Pandas的三种数据结构: 系列(Series) 数据帧(DataFrame) 面板(Panel) 这些数据结构,构建在Numpy数组之上,这意味着它们很快 维数和描述 考虑这些数据结构的最好方法是 ...

  7. 解决 IDEA 创建 Gradle 项目没有src目录问题

    解决 IDEA 创建 Gradle 项目没有src目录问题 前几天遇到一个问题,就是使用IDEA创建gradle项目后,src目录没有自动生成出来,今天就给大家分享一下怎么解决. 1. 目录:创建的 ...

  8. listings技巧

    1. \lstdefinestyle 参考 https://blog.csdn.net/ProgramChangesWorld/article/details/52142313 我们在使用listin ...

  9. javascript系列--认识并理解构造函数,原型和原型链

    一.前言 介绍构造函数,原型,原型链.比如说经常会被问道:symbol是不是构造函数:constructor属性是否只读:prototype.[[Prototype]]和__proto__的区别:什么 ...

  10. ASP.NET 网站迁移 HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用

    前提:今天要做网站迁移,把A服务器上的网站迁移到B服务器上,A服务器当时的环境是.NET 4.0 ,而B服务器是.NET2.0,A服务器IIS为6.0,B服务器IIS版本为7.0  第一步,先在B服务 ...