当前位置: 首页 > news >正文

vue passive 修饰符使用场景

passive的作用

让事件的默认行为立即执行,无需等待事件回调执行完毕

比如滚动事件:默认情况下,浏览器会等待JavaScript事件处理函数(onscroll) 执行完毕后才进行滚动,这可能会导致页面的滚动不够流畅。

使用passive会立即让滚动条滚动,不需要等待滚动条事件执行完再让滚动条滚动。

function demo(){
	for (let i = 0; i < 200000; i++) {
		console.log('#'+ i)
	}
}

    
<div style="overflow: scroll;border: 10px dotted blue;height: 400px;" @scroll.passive="demo">
  <ol>
    <li v-for="n in 50">{{ n }}</li>
  </ol>
</div>

可以看到在设置了passive后,滚动条会先滚动再执行回调函数。

而不设置passive时,必须等待回调函数执行完毕后再滚动滚动条,所以给用户的体验不好。

为了避免这一问题,大部分浏览器(Safari 和 Internet Explorer 除外)将文档级节点 Window、Document 和 Document.body 上的 wheel、mousewheel、touchstart 和 touchmove 事件的 passive 默认值更改为 true。如此,事件监听器便不能取消事件,也不会在用户滚动页面时阻止页面呈现。

window.addEventListener('wheel', (event) => {
  for(var a=0;a<20000;a++) {
    console.log('window', a)
  }
}, { passive: true });

passive: true 时页面滚动比较丝滑,而设为 false时页面滚动就比较卡顿

但是 scroll 事件不受影响

相关文章:

  • Python中的转义字符
  • MongoDB#常用脚本
  • Vulhub靶机 Apache Druid(CVE-2021-25646)(渗透测试详解)
  • 基于keepalived的Nginx高可用架构
  • 游戏引擎学习第119天
  • 【前端进阶】05 单线程的JavaScript如何管理任务的
  • Baklib企业CMS智能元数据与协作管理实践
  • 超级详细Spring AI运用Ollama大模型
  • 【CentOS7】安装MinIO
  • P1036 [NOIP 2002 普及组] 选数(dfs+素数筛选)
  • forge-1.21.x模组开发(一)注册方块和物品
  • Vue学习教程-15自定义指令
  • python 使用知识点 pyinstaller 虚拟环境打包
  • Java 18~20 新特性
  • Transformers快速入门-学习笔记
  • 一个基本的pyside6项目模板demo
  • Linux 命令大全完整版(06)
  • 【并发编程】线程池任务抛异常会怎么样?
  • NI Multisim仿真实现39计数器
  • Linux 权限系统和软件安装(二):深入理解 Linux 权限系统
  • 70后供销合作总社理事会原副主任侯顺利任中国融通外部董事
  • 临沂文旅集团被诉侵权,原告每年三百余起类案
  • 为国出征指纹却无法识别?他刷新了我军在这一项目的最好成绩
  • 解放日报头版:外资汽车产业链布局上海步伐明显加快
  • 中国铝业首季“开门红”:净利润超35亿元,同比增加近六成
  • 马上评︱大厂取消“大小周”,会让加班隐形化吗