使用vue.js写一个tab选项卡效果

发布时间 - 2026-01-11 00:21:59    点击率:

通常我们写tab选项卡的时候,一般都是用jq等去操作dom,给同级元素移除active类,然后,给被点击元素添加active类,但是在vue.js中,我们能不去操作dom我们就尽量不操作dom,那么该如何实现呢?

如果使用过vue-router,那么你会发现,vue-router在使用的时候其实就相当于一个tab选项卡,在点击之后,被点击的router-link元素会默认被添加上一个router-link-active的类,我们只需要设置这个类的样式即可.(当然,router-link-active)是vue-router默认的类名,你可以自己配置更改名称.这样我们可以直接使用vue的路由功能当tab选项卡使用了.那么如果不想用路由功能呢?

那么请看下面的方法:

html部分

<div id="app">
 <ul>  
  <li @click="toggle($index ,tab.view)" v-for="tab in tabs" :class="{active:active==$index}">
    {{tab.type}}  
   </li> 
 </ul> 
 <component :is="currentView"></component>
</div>

js部分

Vue.component('child1', { 
 template: "<p>this is child1</p>"
})
Vue.component('child2', { 
 template: "<p>this is child2</p>"
})
new Vue({ 
 el: "#app", 
 data: { 
 active: 0, 
 currentView: 'child1', 
 tabs: [ 
 {  
  type: 'tab1', 
  view: 'child1' 
 },  
 {  
  type: 'tab2', 
  view: 'child2' 
 } 
 ] 
}, 
 methods: { 
 toggle(i, v){ 
 this.active = i 
 this.currentView = v 
 } 
 }
})

然后我们只需要设置一个.active的样式就可以了,比如设置一个最简单的

css

.active{
 color:red
}

简易的vue.js tab 选项卡

原理很简单,我们给tab选项绑定了toggle方法,点击时让active等于其index,从而给其添加了一个active类,而显示的内容也是同样的原理.比起传统操作dom方法,这个整体看上去更简洁,不过麻烦在每个tab选项卡都是一个组件.

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


# vue.js实现选项卡  # vue.js选项卡  # vue  # tab选项卡  # vue实现选项卡及选项卡切换效果  # Vue.js组件tabs实现选项卡切换效果  # vue插件tab选项卡使用小结  # Vue.js组件tab实现选项卡切换  # vue中选项卡点击切换且能滑动切换功能的实现代码  # vuejs实现标签选项卡动态更改css样式的方法  # Vue.js tab实现选项卡切换  # vue动态组件实现选项卡切换效果  # vue中用动态组件实现选项卡切换效果  # vue实现简易选项卡功能  # 选项卡  # 都是  # 只需要  # 路由功能  # 你可以  # 不去  # 我们可以  # 很简单  # 该如何  # 定了  # 最简单  # 想用  # 于其  # 使用过  # 你会发现  # 大家多多  # 移除  # 就可以  # 给其  # 使用了 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在IIS服务器上快速部署高效网站?  bootstrap日历插件datetimepicker使用方法  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何构建满足综合性能需求的优质建站方案?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何正确选择百度移动适配建站域名?  如何确认建站备案号应放置的具体位置?  如何快速上传自定义模板至建站之星?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  如何在服务器上三步完成建站并提升流量?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  网站制作报价单模板图片,小松挖机官方网站报价?  Laravel如何实现API版本控制_Laravel版本化API设计方案  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  C++时间戳转换成日期时间的步骤和示例代码  Windows Hello人脸识别突然无法使用  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  详解Android图表 MPAndroidChart折线图  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Firefox Developer Edition开发者版本入口  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  手机网站制作与建设方案,手机网站如何建设?  JavaScript如何实现继承_有哪些常用方法  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何在阿里云通过域名搭建网站?  javascript基本数据类型及类型检测常用方法小结  如何在搬瓦工VPS快速搭建网站?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Android滚轮选择时间控件使用详解  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何用wdcp快速搭建高效网站?  无锡营销型网站制作公司,无锡网选车牌流程?  打造顶配客厅影院,这份100寸电视推荐名单请查收  Android使用GridView实现日历的简单功能  Laravel如何处理文件下载请求?(Response示例)  html5的keygen标签为什么废弃_替代方案说明【解答】  如何用AWS免费套餐快速搭建高效网站?  微信小程序 scroll-view组件实现列表页实例代码  如何快速使用云服务器搭建个人网站?