最近有看了之前一直想解决的bug, 之前在uniapp插件市场中找了一个组件。
然后发现了一个bug 竟然是 this.nextTick 导致的。
简单的介绍一下 this.nextTick,将回调延时到 DOM更新之后调用。
数据是同步更新的, 但是DOM是异步更新的,具体的话可以看JS的事件机制,放入队列中更新。
有些文章说下面两个代码是可以等价的。
this.$nextTick() === setTimeout(()=>{},0)
在组件中向获取DOM元素信息,mounted是组件类的生命周期,就是DOM更新之后调用。
在this.$nextTick 中 获取DOM信息。这个问题不知道是不是bug 我在小程序中一直刷新,有时候可以获取到这个DOM 的信息,有时候不可以
但是我在setTimeou中加延时100ms 是可以获取到的DOM 信息,也是关键帮我解决这个BUG的。我也查了一些资料,其实也有人和我一样使用延时函数解决了问题
如果有人遇到了这个问题可以尝试使用延时函数,看可以解决吗