【VUE】[Violation] Added non-passive event listener to a scroll-blocking...

环境

  • chrome: 115.0.5790.170
  • vue: ^3.3.4
  • element-plus: ^2.3.4
  • vite: ^4.4.7

问题

[Violation] Added non-passive event listener to a scroll-blocking <某些> 事件. Consider marking event handler as 'passive' to make the page more responsive. See <URL>

译: [违规]向滚动阻止添加了非被动事件侦听器<某些> 事件. 请考虑将事件处理程序标记为"被动",以提高页面的响应能力。请参阅<URL>

or:

[Violation] Added non-passive event listener to a scroll-blocking 'mousewheel' event. Consider marking event handler as 'passive' to make the page more responsive.

问题原因

Chrome51 版本以后,chrome 增加了新的事件捕获机制-Passive Event Listeners

  • Passive Event Listeners
    就是告诉前页面内的事件监听器内部是否会调用preventDefault函数来阻止事件的默认行为,以便浏览器根据这个信息更好地做出决策来优化页面性能。当属性passive的值为true的时候,代表该监听器内部不会调用preventDefault函数来阻止默认滑动行为,Chrome浏览器称这类型的监听器为被动(passive)监听器。目前Chrome主要利用该特性来优化页面的滑动性能,所以Passive Event Listeners特性当前仅支持mousewheel/touch相关事件。
  • chrome官方文献:
    《Use passive listeners to improve scrolling performance》(译: 使用被动监听器优化滚动体验)

解决方案

安装default-passive-events

powershell 复制代码
npm install default-passive-events -S
# or
yarn add default-passive-events
# or
pnpm add default-passive-events

src目录下的main.js中引入

javascript 复制代码
import 'default-passive-events'

重启项目即可

相关推荐
程序员黑豆3 分钟前
鸿蒙应用开发之生命周期方法完全指南
前端·harmonyos
一点一木3 分钟前
第 23 届 ChinaJoy 刚结束,我把 965 个展台做成了 3D 云展馆
前端·人工智能
wordbaby6 分钟前
前端请求缓存写了,同一个接口为什么还是打了十几次?
前端·promise
不可能掉发6 分钟前
Env Guard:让浏览器一眼分清生产、测试和开发环境
前端·javascript·chrome·测试工具·html·开源软件·个人开发
饼干哥哥13 分钟前
Codex 必改的8 个基础配置
前端·人工智能·后端
扯蛋43817 分钟前
langchain1.x 时代的记忆系统 (二)
javascript·llm·agent
ClouGence18 分钟前
AI Agent 能写测试、跑流程,为什么回归测试还不能完全交给 AI?
前端·测试
码云之上19 分钟前
Context Engineering:让 Agent 在当前步骤看到正确的事实
前端·人工智能·前端工程化
烂蜻蜓30 分钟前
Node.js入门教程(一):初识Node.js——服务端JavaScript的诞生与特点
开发语言·javascript·node.js
嘟嘟071739 分钟前
从手写 HashRouter 到 React Router:逐层拆解 SPA 前端路由的完整实现
前端·javascript