全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)

在 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 标签页切换的基本过程可以概括为:

  • 在父组件中定义一个主 tab 标签页,用于切换,同时为每个 tab 绑定点击事件,传入该 tab 的子组件名,最后引入并定义子组件
  • 子组件中是各 tab 标签页的内容
  • 使用 is 特性动态切换子组件,使用 kee-alive 缓存

is 特性一般用于原生 HTML 元素扩展

举个栗子,一般在 ul 标签中只能嵌套 li 标签,但是我们现在想在 ul 标签内使用自定义组件 v-li。

<ul>
  <v-li></v-li>
</ul>

而这样写肯定是不行的,这就需要用到 is 特性了。

<ul>
  <li is="v-li"></li>
</ul>

这也就是为什么利用 is 特性可以实现动态切换组件的效果。

keep-alive 指令可以将切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # 标签切换  # vue2.0  # tab切换  # 组件  # vue.js实现标签页切换效果  # Vue2.0 给Tab标签页和页面切换过渡添加样式的方法  # vue实现多个tab标签页的切换与关闭详细代码  # vue实现标签页切换/制作tab组件详细教程  # 的是  # 是在  # 这也  # 这就  # 自定义  # 我们现在  # 可以实现  # 定了  # 第三方  # 绑定  # 先看  # 大家多多  # 举个  # 小狐狸  # 为三  # 主要有三种  # lt  # template  # js  # Tab 


相关文章: 佛山网站制作系统,佛山企业变更地址网上办理步骤?  定制建站如何定义?其核心优势是什么?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  建站主机选哪种环境更利于SEO优化?  如何快速生成高效建站系统源代码?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  网站代码制作软件有哪些,如何生成自己网站的代码?  如何选择香港主机高效搭建外贸独立站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何通过宝塔面板实现本地网站访问?  手机网站制作与建设方案,手机网站如何建设?  如何在云主机快速搭建网站站点?  如何在服务器上配置二级域名建站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  建站之星如何开启自定义404页面避免用户流失?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  网站网页制作专业公司,怎样制作自己的网页?  如何用狗爹虚拟主机快速搭建网站?  如何快速登录WAP自助建站平台?  宝塔新建站点为何无法访问?如何排查?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  如何在景安服务器上快速搭建个人网站?  如何通过建站之星自助学习解决操作问题?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  如何在搬瓦工VPS快速搭建网站?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  平台云上自主建站:模板化设计与智能工具打造高效网站  建站之星免费模板:自助建站系统与智能响应式一键生成  制作宣传网站的软件,小红书可以宣传网站吗?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何基于PHP生成高效IDC网络公司建站源码?  如何在Golang中使用replace替换模块_指定本地或远程路径  PHP 500报错的快速解决方法  建站为何优先选择香港服务器?  如何在IIS中配置站点IP、端口及主机头?  网站制作难吗安全吗,做一个网站需要多久时间?  建站之星免费版是否永久可用?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  网站制作服务平台,有什么网站可以发布本地服务信息?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  太原网站制作公司有哪些,网约车营运证查询官网?  Python多线程使用规范_线程安全解析【教程】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。