近日在开发代码的过程中遇到了一个很有意思的bug,我就简单描述一下业务场景
有一个展开收起的功能,
红色部分未展开时
绿色部分的高度=总体高度 - 红色部分的高度
demo1.png
红色部分展开后
demo2.png展开的时候我们肯定是要去改变红色部分的高度的,改变之后我们在父组件里面去获取,发现在nextTick里面获取的永远都是展开之前的高度,收起之后获取的却是展开之后的高度,老是慢了一拍,但是当我我们去断点的时候又变的正常了,着实是诡异
认真的排查了一番,发现在写展开收起的时候添加了一个translation过度属性.5s,然后我就把$nextTick换成setTimeOut然后延时500ms这个问题就解决了
之前一直都认为$nextTick是页面渲染完成之后才会触发,现在看来一些动画的过渡效果是个例外
网友评论