zoukankan      html  css  js  c++  java
  • 组件基础之动态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选项卡插件

  • 相关阅读:
    Ios插件开发
    React-Native学习指南
    APP测试基本流程
    iOS开发-由浅至深学习block
    你真的会用UITableView嘛
    iOS系统右滑返回全局控制方案
    优化UITableViewCell高度计算的那些事
    UITableViewCell高度自适应探索--AutoLayout结合Frame
    UITableView优化技巧
    页面间跳转的性能优化(一)
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/11001604.html
Copyright © 2011-2022 走看看