zoukankan      html  css  js  c++  java
  • Vue可自定义tab组件

    在工作中我们常常要用到tab组件,如果有用第三方组件库的话一般都会有这个组件,但如果没有使用第三方组件库,或者想要自定义tab,那么或许这个无依赖的tab组件将会极大地节约你的开发时间。
     
     
    如何使用?
     
    1. 首先先安装:
        npm i vue-cus-tabs -S
    2. 在new vue之前引入样式并use一下VueCusTab:
        import 'vue-cus-tabs/style/index.css'
        import { installCusTabs } from 'vue-cus-tabs';
        Vue.use(installCusTabs);
    3. 在代码中引入组件:
     <CusTabWrap>
          <template v-slot:tabBar>
            <CusTabBar :style="{'height':'50px'}">
              <CusTabItem v-for="item in tabItems" :key="item.title">
                {{item.title}}
              </CusTabItem>
            </CusTabBar>
          </template>
    
          <template v-slot:tabContainer>
            <CusTabContainer>
              <CusTabContainerItem v-for="item in tabItems">
                <ul>
                  <li v-for="data in item.data">
                    {{data.title}}
                  </li>
                </ul>
              </CusTabContainerItem>
            </CusTabContainer>
          </template>
        </CusTabWrap>
    import { TabController } from 'vue-cus-tabs';
        import Vue from 'vue'
    
        
    
        export default class Test extends Vue{
          public tabItems = [
            { title: '新闻', type: 'list', data: [{ img: '', title: 'list item    title' }] },
            { title: '视频', type: 'block', data: [{ video: '', title: 'list item     title' }] },
            { title: '视频1', type: 'block', data: [{ video: '', title: 'list item    title' }] },
          ];
          public tabController?: TabController;
          public mounted() {
            
            // 创建控制器
            this.tabController = new TabController({ data: this.tabItems, tabScroll: true, initIndex: 1 });
          }
        }
    4. 启动Vue Cli的serve,即可看到成果。


    整个组件的设计思路借鉴了flutter的tabs组件,数据的渲染交由vue完成,之后的tab控制由TabController实例来完成。

     
     
     
     
  • 相关阅读:
    堆(优先队列)模板
    线段树(递归)模板
    快速幂(含二阶方阵类)模板
    ACM/CF赛制getstart模板
    [Andrew Stankevich's Contest#21] Lempel-Ziv Compression
    [NOIP2001]Car的旅行路线
    [NOIP2007] 矩阵取数游戏
    [NOIP2010] 关押罪犯
    [NOIP1999] 拦截导弹
    设计模式之第1章-工厂方法模式(Java实现)
  • 原文地址:https://www.cnblogs.com/axel10/p/11731545.html
Copyright © 2011-2022 走看看