• 组件基础之动态tab组件


    <template>
      <div id="demo31">
         <p>-----------------组件基础之动态tab组件一---------------------</p>
        <button
          v-for="tab in tabs"
          v-bind:key="tab"
          v-bind:class="['tab-button', { active: currentTab === tab }]"
          v-on:click="currentTab = tab"
        >{{ tab }}</button>
    
        <component v-bind:is="currentTabComponent" class="tab"></component>
      </div>
    </template>
    
    <script>
    export default {
      components: {
        tabhome: {
          template: "<div>Home component<div>"
        },
        tabpost: {
          template: "<div>Posts component<div>"
        },
        tabarchive: {
          template: "<div>Archive component<div>"
        }
      },
      data() {
        return {
          currentTab: "Home",
          tabs: ["Home", "Post", "Archive"]
        };
      },
      computed: {
        currentTabComponent() {
          return "tab" + this.currentTab.toLowerCase();
        }
      }
    };
    </script>
    <style>
    .tab-button {
      padding: 6px 10px;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: 1px sollid #ccc;
      cursor: pointer;
      background: #f0f0f0;
      margin-bottom: -1px;
      margin-right: -1px;
    }
    .tab-button:hover {
      background: #e0e0e0;
    }
    .tab-button .active {
      background: #e0e0e0;
    }
    .tab {
      border: 1px solid #ccc;
      padding: 10px;
    }
    </style>

    demo2:

    <template>
      <div id="demo32">
         <p>-----------------组件基础之动态tab组件二---------------------</p>
        <button
          v-for="(tab,index) in tabs"
          v-bind:key="index"
          v-bind:class="['tab-button', { active: currentIndex === index }]"
          v-on:click="currentIndex = index"
        >{{ tab }}</button>
    
        <component v-bind:is="currentTabComponent" class="tab"></component>
      </div>
    </template>
    
    <script>
    export default {
      components: {
        tab_home: {
          template: "<div>Home component<div>"
        },
        tab_post: {
          template: "<div>Posts component<div>"
        },
        tab_archive: {
          template: "<div>Archive component<div>"
        }
      },
      data() {
        return {    
          currentIndex:0,
          tabs: ["Home", "Post", "Archive"]
        };
      },
      computed: {
        currentTabComponent() {     
          return 'tab_'+this.tabs[this.currentIndex].toLowerCase()    
        }
      }
    };
    </script>
    <style>
    .tab-button {
      padding: 6px 10px;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: 1px sollid #ccc;
      cursor: pointer;
      background: #f0f0f0;
      margin-bottom: -1px;
      margin-right: -1px;
    }
    .tab-button:hover {
      background: #e0e0e0;
    }
    .tab-button .active {
      background: #e0e0e0;
    }
    .tab {
      border: 1px solid #ccc;
      padding: 10px;
    }
    </style>

    https://blog.csdn.net/kingrome2017/article/details/80541680  vuejs2.0 组件基础动态组件 Tab选项卡插件

  • 相关阅读:
    类名+函数名(参数1,参数2.....){.......return this;}
    报错!无法从静态上下文中引用非静态 变量
    ERROR无法从静态上下文中引用非静态变量
    字符编码笔记:ASCII,Unicode和UTF-8
    MySQL其他类型常用函数
    MySQL流程函数
    MySQL日期和时间函数
    MySQL数值函数
    MySQL字符串函数
    MySQL位运算符优先级
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/11001604.html
Copyright © 2020-2023  润新知