昨天同事遇到一个问题反馈给我,加班到深夜也无法解决,今天忽然想到往往花费时间巨大的问题没有答案可能是最简单的原因,解决了写下来反思。
技术:Vue3 + TS + CompositionAPI
系统:无关
场景:在一个vue页面引用一个vue组件
问题现象:
重复引用首先出现警告如下:
[Vue warn]: Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next
然后疯狂重复加载组件,直至浏览器崩溃。报错如下:
runtime-core.esm-bundler.js?5c40:819 Uncaught (in promise) RangeError: Maximum call stack size exceeded
截图:
最初的定位是代码问题,定时器或者一些自执行时间引起。走了弯路,万万没有想到生活给我上了一课。
其实就引入组件起名和页面起名一致引起,造成了循环引用死循环。
组件名和页面名区分开来。
虽然代码不是我写的,却给我也上课