vue 如何监测真实Dom是否加载完成
1、充分利用浏览器的队列特性:
// 声明定时器 var timer = null // 检查dom是否执行完成 function check() { // onMounted 挂载完 dom 获取为空,真实 dom 在对象中 let dom = document.getElementById('dom')[0] if(dom) { // 执行dom加载完成后的操作,例如echart的初始化操作 echart.init('dom') if(!timer) clearTimeout(timer) // 清除定时器 } else timer = setTimeout(check, 0) // 自我调用 } // 首次执行 check()
注意:因为浏览器是单线程执行,而“while(!dom)”一直占着主线程,所以dom永远得不到机会加载到浏览器中