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永远得不到机会加载到浏览器中

posted @ 2023-01-12 11:01  陈醋当墨写尽人生酸楚  阅读(3461)  评论(0编辑  收藏  举报