React项目中console.log出现重复日志(VM1550 installHook.js:1860)原因咨询
为什么React应用中调用console.log会出现来自VMxxx installHook.js的额外日志?
- VM开头的文件是浏览器动态生成的内存文件:这类文件不是你项目目录里的物理文件,是浏览器在运行时将动态执行的代码临时存在内存里生成的虚拟文件,所以你在本地找不到很正常。
- 这是React DevTools的调试注入导致的:React DevTools扩展会向你的应用注入
installHook.js相关的代码,目的是监控React组件的渲染、状态变化等调试信息。它会包装原生的console方法,当你调用console.log时,DevTools的钩子逻辑可能会额外输出一条日志,用来关联日志对应的组件上下文,方便你调试时定位到日志是哪个组件输出的。 - 验证方法:关闭浏览器的React DevTools扩展,再执行
console.log,如果那条额外的日志消失了,就可以百分百确认是DevTools的原因。如果不想关闭扩展,也可以去DevTools的设置里找相关选项,调整日志输出的行为,关闭不必要的调试记录。
内容的提问来源于stack exchange,提问作者Ali Abbara
相关产品推荐
相关产品推荐

