vue

简单轮子:Tab组件(下)

★Tabs测试(上)

◇注意点

◇我要做什么


★Tabs测试(下)

◇注意点

◇我要做什么?

★总结

★Q&A

①元素是absolute的,只写bottom,是否就够了?

如果用户给absolute至少指定了left/right中的一个,则水平方向的相对特性丢失,垂直方向上继续保持相对特性;如果用户给absolute至少指定了top/bottom中的一个,则保持水平方向上的相对特性,垂直方向上的相对特性丢失。例如:

<div class='box'></div>
.box{
    position: absolute;
    right: 0;
}

此时,元素水平方向相对特性丢失,具有了绝对定位特性,而垂直方向的定位依然保持了相对特性。

➹:【前端Talkking】CSS系列——CSS深入理解之absolute定位 - 前端Talkking - SegmentFault 思否

②如何叫编写可测试的代码?

我们的代码用在测试的时候,某些场景下是不那么好测试的,如dom元素的查找

1564481975898

如何让我们的代码变得可测试一点?——加个标记就好了

1564482155777

③测试覆盖率?

程序员在写代码总是觉得写测试代码是很花时间的,那么就会倾向于不去测它!

那么这样会不会有问题呢?——肯定会呀!

芳芳会在终极部分告诉我们「如何去避免程序员这个惰性?」

之前芳芳讲到过,一个框架的厉害之处在于「它会让你写不出低质量的代码」

而我们现在就是在写低质量的代码,因为我们这测了一部分代码,没有测完呀!而这是全靠自觉的

万一有程序员出现我们这种不自觉情况的话,我们该怎么办呢?——可以通过一些制度来强制ta必须写完。

而这就是框架的优点了。

关于测试覆盖率,我们之后会引入这个工具,该工具会看你测的代码和你写的代码是否是百分之百全部覆盖的,如果不是100%,那么就写到100%为止!而不到100%就不让你通过!

目前,就不测有关tabs的其它组件了,用于留个坑之后填!

④v-if和UI任务的那些事儿?

1564542572934

那么如何把把下边代码放到更新UI任务执行后才执行呢?——使用nextTick啊!

1564542761341

我们想要是用transform,但还是咩有解决页面刷新,线从left为0的位置滑到最终目标的位置。而使用left的话则不会

虽然使用了left性能差些,但是bug更少,代码更少,总之这是需要权衡的

当然,如果你能接受transform那种滑动倒是可以的!

⑤纯CSS禁止鼠标点击事件?

.disabled {
    pointer-events: none;
    cursor: default;
    opacity: 0.6;
}

用于解决元素是disabled状态,但还可以响应鼠标事件(如click事件)的问题!

➹:用纯CSS禁止鼠标点击事件 – WEB骇客

➹:disabled - Mozilla 产品与私有技术 - MDN