tabs标签页

封装tabs组件

.切换tab事件

.slot 内容分发

.动态组件 Keep-alive:若把切换出去的组件保留在内存中,避免重新渲染,可保留它的状态

<template>
<div>
    <ul class="tabs-top">
        <li class="tabs-head" v-for="(item,index) in tabsList"  :class="{‘tabs-active‘:tabsIndex==item.index}" @click="handleChange(item)">{{item.title}}</li>
    </ul>
    <div class="tabs-content">
        <slot></slot>
    </div>
</div>
</template>
<script>
export default {
    data(){
        return{

        }
    },
    props:{
        tabsList:Array,
        tabsIndex:{
            type:Number,
            default:0
        }
    },
    methods:{
        handleChange(tab){
            this.$emit(‘change-tabs‘,tab)
        }
    }
}
</script>
<style>
    .tabs-top{
        width:100%;
        background: #F4F4F4;
        vertical-align: middle;
        border-bottom: 1px solid #19bc9c;

    }
   .tabs-head{
       display: inline-block;
       width:12em;
       text-align: center;
       background-color:lightgrey;
       font-size: 1.14em;
       padding:0.7em 1em;
       border-radius:4px;
       margin-bottom: -1px;
       cursor: pointer;
   }
   .tabs-active{
       background: #fff;
       border: 1px solid #19bc9c;
       border-bottom-color:#fff;
   }
</style>

引用

<template>
      <tabs :tabsList="tabsList" :tabsIndex="tabsIndex" @change-tabs="changeTabs">
             <Keep-alive>
                    <component :is="currentContent">
                     </component>
                </Keep-alive>
         </tabs>
</template>
<script>
 import Tabs from ‘./Tabs‘
 import editInfo from ‘./editInfo.vue‘
 import object from ‘./object.vue‘
 export default {
    data() {
        return {
            tabsIndex:0,
            currentContent:‘one‘,
            tabsList:[
                {index:0,title:‘知识树‘,component:‘one‘},
                {index:1,title:‘能力树‘,component:‘two‘}
            ]
        };
      },
      methods:{
          changeTabs(tab){
                this.tabsIndex=tab.index;
                this.currentContent=tab.component
          }
// 若不在下面的内容区显示
        changeTabs(tab){
              if(tab.index!==1){
                this.tabsIndex=tab.index;
                this.currentContent=tab.component
              }else{
                console.log(1)
              }
          }
      },
       components:{‘one‘:editInfo,‘two‘:object},
}
</script>

结果演示

原文地址:https://www.cnblogs.com/zhuuuu/p/9537262.html

时间: 2024-10-09 23:28:41

tabs标签页的相关文章

elementUI中Tabs标签页的使用

一.系统公告这栏是直接引入系统消息这个页面的,现在需要在系统公告这栏加入一个返回按钮,但是又不能直接在人家的系统消息页面上加,如何实现?? 解决:利用Tabs标签页提供的@tab-click事件. 首先直接在个人中心这个页面上加入按钮标签,但是给它一个v-if属性,当其为true时就显示按钮,false就不显示. 二.跳转到指定的标签 需求:从页面A跳到该页面时指向配置管理这栏.其他页面跳到此还是默认为用户管理这栏. 解决:从页面A跳过来时可以带一个参数,用于该页面做条件判断. 第一步:在A页面

详解Android ActionBar之二:ActionBar添加Tabs标签和下拉导航

本节主要讲解ActionBar如何添加Tabs标签和下拉导航. 一.添加标签 Tabs 在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected.onTabUnselected和onTabReselected方法来关联Fragment.代码如下: Java代码 private class MyTabListener implements ActionBar.TabListener { private TabCon

动态创建标签页

一.首先添加标签页 <div title="员工信息"> <a id="add_tab" style="width:100%"href="#" class="easyui-linkbutton">新标签页</a> <a style="width:100%" title="addUser.html" href="#&q

jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】

1.效果图 2.导入js和css <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="font/Font-Awesome/css/font-awesome.css"> <link rel="styl

JavaScript提高:005:ASP.NET使用easyUI TABS标签显示问题

前面使用easy ui来实现了一个tabs标签(http://blog.csdn.net/yysyangyangyangshan/article/details/38307477),不过在ASP.NET中使用时发现了一个问题. 大家都知道,asp.net页面的控件,当控件的事件不是使用 "return js函数();"时,或者控件注册的是后台的事件,那么整个页面会重新加载的.此时这个easy ui实现的tabs标签,总是回到了第一个tab页.虽然可以借助ajax和jQuery的方法,来

vim用多个标签页打开多个文件

1.打 开 新 标 签 页 启动 Vim 时用 "vim -p filename ..." :tabe[dit]                                 :tabnew         在当前标签页之后打开带空窗口的新标签页. :tabe[dit] [++opt] [+cmd]  :tabnew [++opt] [+cmd]                  打开新标签页并编辑 ,其余和 |:edit| 类同. :tabf[ind] [++opt] [+cmd]

【Android】标签页、计时器、单选按钮、复选按钮

写一个小程序把安卓程序中的几个基础组件的基本用法串联起来. 如下图所示: 在安卓程序中,一个计时器,一直在不断地计时,每10秒弹出一个提示. MainActivity被一个标签页分成两部分,一部分,有单选按钮与复选按钮,最后有一个提交按钮, 结果在另一个标签页中显示. 用这个程序来说明安卓中标签页.计时器.单选按钮.复选按钮的用法. 首先贴上res\values\string.xml中,各个组件的字符串. <?xml version="1.0" encoding="ut

【vim】分割窗口与标签页

vim支持窗口分割和标签页,合适地使用这两种特性可以使文字编辑工具更愉快. 1. 窗口分割 vim支持窗口的水平分割和垂直分割.以下是常用的操作指令或快捷键. 命令 说明 vim -o <files> 打开多个文件,并将它们放在水平分割的窗口中 vim -O <files> 打开多个文件,并将它们放在垂直分割的窗口中 :sp[lit] [file] 不加file参数时,新建一个水平窗口,放置当前文件的副本:带file参数时,新建一个水平窗口并把file放在新窗口中. 新窗口将位于当

ActionBar+Fragment实现顶部标签页

用ActionBar的TABS模式,和Fragment实现程序顶部的标签页切换. 一. MainActivity public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 取得ActionB