我知道mounted
和created
是生命周期钩子函数,并且已经尝试过它们。我也尝试在mounted
中使用$nextTick
,但这并不能准确地渲染。我现在正在尝试在初始渲染之后从一个DOM节点中访问一些数据。以下是我代码的关键部分:
mounted() {
console.log(this.$el.getBoundingClientRect().top);
},
这给我提供了错误的数据。然而,使用以下代码:
mounted() {
setTimeout(() => {
console.log(this.$el.getBoundingClientRect().top);
}, 1000)
},
在我开始获取正确的数据之前,阈值大约为700-900毫秒。
问题1
为什么生命周期在一切都没有完全渲染时被调用?
问题2
这是否与尚未完全挂载的同级组件有关,可能会推动维度?
问题3
是否有解决方案,可以挂钩到一个事件上,基本上表示“页面上的所有内容都已呈现”。
我不喜欢我想出的setTimeout
解决方案,因为显然存在问题。