【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 分钟前
iframe的属性获取
开发语言·javascript·ecmascript
小陈工13 分钟前
Python Web开发入门(十一):RESTful API设计原则与最佳实践——让你的API既优雅又好用
开发语言·前端·人工智能·后端·python·安全·restful
星空16 分钟前
前段--A_2--HTML属性标签
前端·html
三万棵雪松31 分钟前
【Linux 物联网网关主控系统-Web部分(一)】
linux·前端·嵌入式linux
摸鱼仙人~1 小时前
增量快照 vs 结构化共享:适用场景全解析
前端·vue.js
2301_771717211 小时前
Jackson的使用方法详解
java·服务器·前端
A923A1 小时前
【小兔鲜电商前台 | 项目笔记】第八天
前端·vue.js·笔记·项目·小兔鲜
DYuW5gBmH1 小时前
Chrome DevTools MCP 让 AI 无缝接管浏览器调试会话
前端·chrome·chrome devtools
echome8882 小时前
JavaScript Promise 与 async/await 实战:5 个高频异步编程场景的优雅解决方案
开发语言·javascript·ecmascript
qq12_8115175152 小时前
Java Web 影城会员管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
java·前端·mybatis