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

重启项目即可

相关推荐
深蓝AI12 小时前
Meta 开源用了八年的设计系统 astryx:连坐两天 GitHub 总榜第一,组件库开始写给 agent 的说明书
前端·人工智能
ruanno_top12 小时前
轮播每 3 秒自己翻页:键盘停不下来,读屏也不知道换了页
vue.js
IT_陈寒13 小时前
Vue的watch把我坑惨了,原来要这样用才靠谱
前端·人工智能·后端
1-1=013 小时前
Vue 3 模板语
前端·javascript·vue.js
用户76103044737113 小时前
【转战智能眼镜开发】ROKID AIUI 小游戏 亚马逊标枪项目实战讲解
前端
风卿13 小时前
看着AI写代码太孤独了,来欣赏星云吧:一个DSH 装饰插件
前端·javascript
牧艺13 小时前
弹层不用再手算坐标了:CSS Anchor Positioning 从原理到可上线
前端·javascript·css
用户老李13 小时前
YOLO 目标检测自学教程 07:YOLOv3——多尺度预测
前端
moshuying14 小时前
ESP32 墨水屏金价牌(上):从点亮到把图片推过去
前端
李剑一14 小时前
别再抬杠,前端岗已经没了!无论前后端,我们最终都要成“全干”工程师
前端·面试