时间:2021-05-25
在 vue 中,实现 Tab 切换主要有三种方式:使用动态组件,使用 vue-router 路由,使用第三方插件。
因为这次完成的功能只是简单切换组件,再则觉得使用路由切换需要改变地址略微麻烦,所以使用的是动态组件实现,如果是在大型应用上,可能使用 vue-router 会方便一些。
先看下最终实现的效果,结构比较简单,顶部的三个 Tab 标签用于切换,内容区域分别为三个子组件。
效果预览
关键代码及分析如下:
<template>// 每一个 tab 绑定了一个点击事件,传入的参数对应着 tab 下的组件名<div class="tabs"> <div class="tab" @click="toggleTab('prince')"><a>小王子</a></div> <div class="tab" @click="toggleTab('rose')"><a>小玫瑰</a></div> <div class="tab" @click="toggleTab('fox')"><a>小狐狸</a></div></div>// 子组件,显示不同的 tab// is 特性动态绑定子组件// keep-alive 将切换出去的组件保留在内存中<prince :is="currentTab" keep-alive></prince></template><script>// 引入子组件import prince from './components/prince';import rose from './components/rose';import fox from './components/fox';export default { name: 'app', data () { return { currentTab: 'prince' // currentTab 用于标识当前触发的子组件 }; }, components: { // 声明子组件 prince, rose, fox }, methods: { toggleTab: function(tab) { this.currentTab = tab; // tab 为当前触发标签页的组件名 } }}</script>使用动态组件实现 Tab 标签页切换的基本过程可以概括为:
is 特性一般用于原生 HTML 元素扩展
举个栗子,一般在 ul 标签中只能嵌套 li 标签,但是我们现在想在 ul 标签内使用自定义组件 v-li。
<ul> <v-li></v-li></ul>而这样写肯定是不行的,这就需要用到 is 特性了。
<ul> <li is="v-li"></li></ul>这也就是为什么利用 is 特性可以实现动态切换组件的效果。
keep-alive 指令可以将切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了vue2.0实现的tab标签切换效果。分享给大家供大家参考,具体如下:这里利用vue2.0实现tab标签切换效果比较实用初学vue,练习写了一个d
1、说明运用技术:Vue2.0、Vux、vux-loader、vue-cli、vue-router、vuex2、效果图3、实现流程3.1搭建框架(需要安装好no
最近使用vue2.0重构项目,需要实现一个分页的表格,没有找到合适的分页组件,就自己写了一个,效果如下:该项目是使用vue-cli搭建的,如果你的项目中没有使用
本文实例讲述了Vue2.0实现组件之间数据交互和通信操作。分享给大家供大家参考,具体如下:Vue2.0组件之间数据交互和通信。Vue2.0废弃了dispatch
今天我们来说一说vue1.0和vue2.0的主要变化有哪些一.在每个组件模板,不在支持片段代码VUE1.0是: 我是组件我是加粗标签VUE2.0:必须有根元素,