zoukankan      html  css  js  c++  java
  • 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{
            100%;
            background: #F4F4F4;
            vertical-align: middle;
            border-bottom: 1px solid #19bc9c;
           
        }
       .tabs-head{
           display: inline-block;
           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>
    
    

    结果演示

  • 相关阅读:
    git将已存在的项目转换成git项目&托管git服务器
    联合索引
    MyISAM和InnoDb的关系
    NPOIHelper
    C# CRC各种转换
    appcloud 微信分享大图片
    C# 微信JSSDK 获取配置信息
    简易delegate委托
    GPS、谷歌、百度、高德坐标相互转换
    反射执行方法WINFROM
  • 原文地址:https://www.cnblogs.com/zhuuuu/p/9537262.html
Copyright © 2011-2022 走看看