【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'

重启项目即可

相关推荐
颂love5 分钟前
Vue的两大生态以及组件通信
前端·javascript·vue.js·typescript
甜汤圆8 分钟前
Python 里**自定义数据单元**
前端
cidy_9815 分钟前
将 Figma 接入 Codex MCP:从 `/plugins` 到本地插件配置的完整教程
前端
vivo互联网技术16 分钟前
动效开发不踩坑:几种动效实现方案对比与实战选型
前端·性能优化·动效
Csvn19 分钟前
【Vue3】Composition API vs Options API —— 什么场景该选哪个
前端
Csvn20 分钟前
Vue3 迁移血泪史:v-model 的 .sync 陷阱,90% 升级项目都会踩
前端·vue.js
光影少年20 分钟前
js单线程,为什在node环境下的js可以处理高并发请求?
前端·javascript·掘金·金石计划
vim怎么退出33 分钟前
Dive into React——事件系统
前端·react.js·源码阅读
moMo36 分钟前
# JavaScript 的“等等我”:聊聊同步与异步
javascript
KaMeidebaby36 分钟前
卡梅德生物技术快报|重组蛋白的表达和纯化:工艺调试全记录:大肠杆菌体系重组蛋白的表达和纯化参数标定(肠激酶轻链案例)
前端·人工智能·算法·数据挖掘·数据分析