Vue系列之 => 组件切换

组件切换方式一

 1 <!DOCTYPE html>
 2 <html lang="en">
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9     <script src="./lib/jquery2.1.4.min.js"></script>
10     <script src="./lib/Vue2.5.17.js"></script>
11     <link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
12 </head>
13
14 <body>
15     <div id="app">
16         <a href="" @click.prevent="flag=true">登录</a>
17         <a href="" @click.prevent="flag=flase">注册</a>
18         <login v-if="flag"></login>
19         <register v-else="flag"></register>
20     </div>
21
22     <template id="userlogin">
23         <div>
24             <h1>用户登录界面</h1>
25         </div>
26     </template>
27
28     <template id="userreg">
29         <div>
30             <h1>用户注册界面</h1>
31         </div>
32     </template>
33     <script>
34         Vue.component(‘login‘,{
35             template : ‘#userlogin‘
36         });
37
38         Vue.component(‘register‘,{
39             template : ‘#userreg‘
40         })
41
42         var vm = new Vue({
43             el: ‘#app‘,
44             data: {
45                 flag : true
46             },
47             methods: {},
48         })
49     </script>
50 </body>
51
52 </html>

组件切换方式二(加上动画)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9     <script src="./lib/jquery2.1.4.min.js"></script>
10     <script src="./lib/Vue2.5.17.js"></script>
11     <link href="https://cdn.bootcss.com/animate.css/3.7.0/animate.css" rel="stylesheet">
12 </head>
13 <style>
14     .v-enter,
15     .v-leave-to{
16         opacity: 0;
17         transform: translateX(150px);
18     }
19
20     .v-enter-active,
21     .v-leave-active{
22         transition: all 0.5s ease;
23     }
24 </style>
25
26 <body>
27     <div id="app">
28         <a href="" @click.prevent="comName=‘login‘">登录</a>
29         <a href="" @click.prevent="comName=‘register‘">注册</a>
30         <!-- 这是vue提供的 component 元素来展示对应名称的组件 -->
31         <!-- component是一个占位符, :is 属性用来指定要展示的组件的名称 -->
32         <!-- 组件名称是字符串,要用引号包起来 -->
33         <!-- <component :is="‘register‘"></component> -->
34         <!-- 使用变量的方式方便控制 -->
35         <!-- 设置mode属性值为out-in,动画先出去再进来 -->
36         <transition mode="out-in">
37             <component :is="comName"></component>
38         </transition>
39         <!-- VUE提供的标签 , component,template,transition, transitionGroup -->
40     </div>
41
42     <template id="userlogin">
43         <div>
44             <h1>这是登录组件</h1>
45         </div>
46     </template>
47
48     <template id="userreg">
49         <div>
50             <h1>这是注册组件</h1>
51         </div>
52     </template>
53     <script>
54         Vue.component(‘login‘,{
55             template : ‘#userlogin‘
56         });
57
58         Vue.component(‘register‘,{
59             template : ‘#userreg‘
60         })
61
62         var vm = new Vue({
63             el: ‘#app‘,
64             data: {
65                 comName : ‘login‘ //当前component中的 :is 绑定的组件名称
66             },
67             methods: {},
68         })
69     </script>
70 </body>
71
72 </html>

原文地址:https://www.cnblogs.com/winter-shadow/p/10205788.html

时间: 2024-11-11 20:21:50

Vue系列之 => 组件切换的相关文章

Vue学习之组件切换及父子组件小结(八)

一.组件切换: 1.v-if与v-else方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv=&q

Vue系列之 =&gt; 组件中的data和methods

使用data 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA

vue + element-ui 制作tab切换(切换vue组件,踩坑总结)

本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件. 1.vue如何使用element-ui 上一篇文章已经分享了如何在vue中使用element-ui创建tab组件切换内容(需要了解的朋友点击链接查看) 2.创建相应文件. a.创建父组件 src/components/tabZujian.vue b.创建自组件(被切换的组件)src/tabComponents 文件夹 + + tabComponents(目录) ---- tabZuji

Vue学习系列(二)——组件详解

前言 在上一篇初识Vue核心中,我们已经熟悉了vue的两大核心,理解了Vue的构建方式,通过基本的指令控制DOM,实现提高应用开发效率和可维护性.而这一篇呢,将对Vue视图组件的核心概念进行详细说明. 什么是组件呢? 组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 为什么要用到组件呢? 为了可重用性高,减少重复性开发,让我们可以使用独立可复用的小组件来构建大型应用. 基本 一.组件注册 1.通过Vue.extend()创建,然后由component来

Vue.js说说组件

什么是组件:组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HTML元素的形式,以is特性扩展. 如何注册组件? 需要使用Vue.extend方法创建一个组件,然后使用Vue.component方法注册组件.Vue.extend方法格式如下: var MyComponent = Vue.extend({ // 选项...后面再介绍 }) 如果想要其他地方使用这个创

JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)

前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能覆盖似乎不太现实,博主挑选了一些自认为比较常用的功能在此分享给各位园友.源码也在这篇统一给出.好了,不多说废话,开始我们的干货之旅吧. bootstrap table系列: JS组件系列——表格组件神器:bootstrap table JS组件系列——表格组件神器:bootstrap table(二

基于Vue封装分页组件

使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} .page-bar { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-sel

webpack入坑之旅(五)加载vue单文件组件

这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不是开始的开始 webpack入坑之旅(二)loader入门 webpack入坑之旅(三)webpack.config入门 webpack入坑之旅(四)扬帆起航 webpack入坑之旅(五)加载vue单文件组件 webpack入坑之旅(六)配合vue-router实现SPA 需要什么? 在经过前面的四

vue的动画组件(transition)

当插入或删除包含在 transition 组件中的元素时,Vue 将会做以下处理: 自动嗅探目标元素是否应用了 CSS 过渡或动画,如果是,在恰当的时机添加/删除 CSS 类名. v-enter: 定义进入过渡的开始状态.在元素被插入时生效,在下一个帧移除.v-enter-active: 定义过渡的状态.在元素整个过渡过程中作用,在元素被插入时生效,在 transition/animation 完成之后移除. 这个类可以被用来定义过渡的过程时间,延迟和曲线函数.v-enter-to: 2.1.8