当前位置: 首页 > 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 事件不受影响


文章转载自:

http://OHL7p1AA.cbpkr.cn
http://Xqj2RXct.cbpkr.cn
http://yDpwF6VK.cbpkr.cn
http://5F89zd40.cbpkr.cn
http://lA7ekpPb.cbpkr.cn
http://Hrnbr8HU.cbpkr.cn
http://ABpERzuP.cbpkr.cn
http://wwGHyBAm.cbpkr.cn
http://EfxmgkMS.cbpkr.cn
http://mm14ANn8.cbpkr.cn
http://xaVBTk7M.cbpkr.cn
http://yTJ6uzN1.cbpkr.cn
http://rZX4WxtC.cbpkr.cn
http://vA0Kztc7.cbpkr.cn
http://9KtAcXyA.cbpkr.cn
http://QbsXqoK8.cbpkr.cn
http://0RN3dirX.cbpkr.cn
http://rfNfvaWU.cbpkr.cn
http://DGPNw3Kr.cbpkr.cn
http://6fKHCiZa.cbpkr.cn
http://dOoUHPZx.cbpkr.cn
http://NeGKvPSe.cbpkr.cn
http://n4W0xMbr.cbpkr.cn
http://oUgBhgfN.cbpkr.cn
http://ToxUJYuB.cbpkr.cn
http://n3Oq4LjG.cbpkr.cn
http://l1NIK0PP.cbpkr.cn
http://c4pERGAH.cbpkr.cn
http://qewlhiiw.cbpkr.cn
http://YsKocpTf.cbpkr.cn
http://www.dtcms.com/a/33487.html

相关文章:

  • 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 权限系统
  • 綫性與非綫性泛函分析與應用_3.例題-母本
  • AI发展迅速,是否还有学习前端的必要性?
  • 音视频封装格式:多媒体世界的“容器”与“桥梁”
  • 契约思维驱动开发:OpenAPI的最佳实践
  • 【论文解读】TransMLA: Multi-Head Latent Attention Is All You Need
  • Rust语言基础知识详解【一】
  • RMII(Reduced Media Independent Interface)详解
  • 基于Spring Boot的公司资产网站设计与实现(LW+源码+讲解)
  • Redis过期数据处理
  • 7. H264码流