vue3监听dom元素变化

1:安装ResizeObserver

npm install resize-observer-polyfill --save-dev

2:引入插件,获取dom元素传入

<template>
  <div class="userPortrait" id="myElement">
  </div>
</template>



<script lang="ts" setup>
import ResizeObserver from "resize-observer-polyfill";


let resizeObserver;


onMounted(() => {
  let myElement = document.getElementById("myElement");
  resizeObserver = new ResizeObserver((entries, observer) => {
    console.log("DOM元素变化了")
    echarts.init(document.getElementById("lineChart_content")).resize();
  });
  resizeObserver.observe(myElement);
});

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在使用Element-ui的导航时,如果重复点击一个导航,可能会遇到一个错误,报错信息为"Uncaught (in promise) Error: Avoided redundant navigation to current location: "/xxx/xxx/xxx""。这个错误是因为重复导航到了当前的页面位置,导致了冗余的导航。\[1\] 引用\[2\]:在解决这个问题时,可以在项目的路由配置文件中添加以下代码: ``` Router.prototype.push = function push(location) { return Router.prototype.push.call(this, location).catch(err => err) } ``` 这段代码的作用是重写`push`方法,捕获错误并返回错误对象,从而避免了报错。\[2\] 关于问题中提到的"vue3中ResizeObserver loop limit exceeded"的错误,这个错误通常是由于使用了`ResizeObserver`监听器导致的。在Vue 3中,`ResizeObserver`的监听器可能会导致循环触发,从而超过了循环限制。为了解决这个问题,可以尝试使用`v-resize`指令来替代`ResizeObserver`监听器,或者使用`debounce`函数来限制触发频率。另外,也可以检查代码中是否存在其他导致循环触发的问题,例如在监听器中修改了触发监听元素的大小。 #### 引用[.reference_title] - *1* *2* [开发中遇到的报错](https://blog.csdn.net/weixin_38866493/article/details/108754312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值