组件切换方式(Vue.js)
2019-08-14 10:30:40来源:博客园 阅读 ()
这里,我用一个注册登录两组件的切换实例来演示:
切换方式一
<!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>
切换成功。
原文链接:https://www.cnblogs.com/duxiu-fang/p/11327248.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:创建全局组件的三种方式
- jQuery异步提交表单的两种方式 2020-03-12
- JS实现标签页切换效果 2020-03-12
- js调用刷新界面的几种方式 2020-03-05
- JavaScript访问CSS属性的几种方式介绍 2020-01-07
- AngularJS实现标签页的两种方式 2019-12-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash