MutationObserver的使用

通过MutationObserver的方式监听是否有DOM元素插入。当vue渲染页面后会对<div id="app"></div>重新挂载。这时要观察的目标节点内会有节点挂载,此时隐藏骨架屏。

js 复制代码
<svg id="skeletonViewBase"></svg>
<div id="app"></div>
<script>
const skeleton_view_base = document.querySelector('#skeletonViewBase')
const observers = new MutationObserver((mutationsList, observer) => {
  // 遍历每个发生变化的 mutation
  for (const mutation of mutationsList) {
    // 检查是否有节点添加
    if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
      // 遍历新添加的节点
      mutation.addedNodes.forEach((node) => {
        if (node.classList) {
          skeleton_view_base && skeleton_view_base.remove()
          observer.disconnect()
        }
      })
    }
  }
})
// 要观察的目标节点
const targetNode = document.querySelector('#app')
// 配置 MutationObserver 来监听子节点的添加
const config = {
  childList: true, // 监听子节点的添加或移除
  subtree: true // 在整个 DOM 树中观察更改
}
// 开始观察
observers.observe(targetNode, config)
</script>
相关推荐
泯泷1 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
野槐4 小时前
前端项目优化(有了我,会发生...)
前端
aa小小5 小时前
【无标题】
前端
计算机魔术师6 小时前
还在单线程跟 AI 聊天?Claude Code 并行多会话让你一个人干三个人的活
前端
志尊宝6 小时前
Vue3 零基础每日笔记(038):亲手封装 useDebounceFn 与 useThrottleFn——高频事件的流量阀
前端·javascript·vue·html·vue3
JavaGuide6 小时前
对标 MinIO!全新一代分布式文件系统正式发布
前端·后端
风骏时光牛马6 小时前
AI驱动自动化业务工作流搭建实践
前端
码云之上6 小时前
Skill 里的脚本终于能跑了,星悟接 CubeSandbox 的纪实
前端·人工智能·前端框架
IT_陈寒6 小时前
Vue computed属性这个坑,我居然踩了三次才爬出来
前端·人工智能·后端
烈风逍遥7 小时前
第三篇:组件化实践,SpTable 通用表格组件设计
前端·架构