栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

造轮子-tab组件(上)

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

造轮子-tab组件(上)

1. 如何解决之前遗留的bug
  1. 根据错误提示大概确定原因,toast.test.js .style 造成。
  2. 用二分法找bug到底是哪一个用例出错。
  3. log+分析代码,mounted和KaTeX parse error: Expected 'EOF', got '是' at position 9: nextTick是̲有时间间隙的,得到原因测试用例…nextTick设置高度,所以可能是click太快了,此时s当$nextTick的时候,已经toast已经被我们关掉了,所以无法设置高度,那么解决方案就是我们就需要模拟用户点击,200ms后再点击
 // toast.test.js
 setTimeout(()=>{
     closeButton.click()
     expect(callback).to.have.been.called
     done()
 },200)
2. 对tabs进行需求分析,每一个组件都要进行四步
  1. 需求
  2. ui
  3. 代码
    • 先考虑用户怎么用
      // elementUI的使用方法一
      
          
       
           美女相关咨询
       
          
          
       
           世界杯相关咨询
       
          
      	
      
      // elementUI的使用方法二,加icon
      // 这种使用方法有个问题,tab上加背景色没办法加
      
          
         
           美女相关咨询
       
          
      
      
      // 我们设计的使用方式,这种方式改背景色就很简单直接在g-tabs-nav上添加就可以了。
      
          
       	
       	
          
          
       
       
          
      	
      
  4. 测试
3. 新建5个组件
 // tabs.vue
 // tabs-head
 // tabs-body
 // tabs-item
 // tabs-pane
4. 子组件不能改父组件的值,一定要通过通知父组件,让父组件来改
    // 这么写的原因
    
    
     
 
     
  美女
     
 
 
     
  美女相关咨询
     
 
    

5.添加 tabs 相关组件的基本 props,之后开始完善
    // tabs.vue
    props: {
 selected: {
     type: String,
     required: true
 }
    },
    direction: {
 type: String,
 default: 'horizontal',
 validator(value){
     return ['horizontal', 'vertical'].indexOf(value) >= 0
 }
    },
    created(){
 // this.$emit('update:selected','xxx')
    }

    // tabs-item.vue
     props: {
      disabled: {
 type: Boolean,
 default: false
      }
    }
    
    // 为了实现右边有个按钮的功能
    // tabs-head
    
 
 
    
    // index.html
    
 
     
 
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/244882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号