全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

关于Vue.nextTick()的正确使用方法浅析

本文主要给大家介绍了关于Vue.nextTick()的正确使用,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

什么是Vue.nextTick()

官方文档解释如下:

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

我理解的官方文档的这句话的侧重点在最后那半句获取更新后的DOM,获取更新后的DOM言外之意就是什么操作需要用到了更新后的DOM而不能使用之前的DOM或者使用更新前的DOM或出问题,所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作的 js代码,比如Swiper扩展包的

var swiper = new Swiper('.swiper-container', {
   pagination: '.swiper-pagination',
   nextButton: '.swiper-button-next',
   prevButton: '.swiper-button-prev',
   paginationClickable: true,
   spaceBetween: 30,
   centeredSlides: true,
   autoplay: 2500,
   autoplayDisableOnInteraction: false
  });

什么时候需要用的Vue.nextTick()

  • 你在Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中。原因是什么呢,原因是在created()钩子函数执行的时候DOM 其实并未进行任何渲染,而此时进行DOM操作无异于徒劳,所以此处一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之对应的就是mounted钩子函数,因为该钩子函数执行时所有的DOM挂载和渲染都已完成,此时在该钩子函数中进行任何DOM操作都不会有问题 。
  • 在数据变化后要执行的某个操作,而这个操作需要使用随数据改变而改变的DOM结构的时候,这个操作都应该放Vue.nextTick()的回调函数中。

原因是,Vue是异步执行dom更新的,一旦观察到数据变化,Vue就会开启一个队列,然后把在同一个事件循环 (event loop) 当中观察到数据变化的 watcher 推送进这个队列。如果这个watcher被触发多次,只会被推送到队列一次。这种缓冲行为可以有效的去掉重复数据造成的不必要的计算和DOm操作。而在下一个事件循环时,Vue会清空队列,并进行必要的DOM更新。

当你设置 vm.someData = 'new value',DOM 并不会马上更新,而是在异步队列被清除,也就是下一个事件循环开始时执行更新时才会进行必要的DOM更新。如果此时你想要根据更新的 DOM 状态去做某些事情,就会出现问题。。为了在数据变化之后等待 Vue 完成更新 DOM ,可以在数据变化之后立即使用 Vue.nextTick(callback) 。这样回调函数在 DOM 更新完成后就会调用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# vue  # nexttick  # 用处  # vue.js  # vue中$nextTick的用法讲解  # Vue中的nextTick作用和几个简单的使用场景  # 简单理解Vue中的nextTick方法  # 深入理解Vue nextTick 机制  # Vue nextTick的原理解析  # 浅谈Vue.nextTick 的实现方法  # vue3中nextTick()应用实例详解  # 回调  # 就会  # 是在  # 放在  # 需要用  # 文档  # 会有  # 都不  # 出了  # 言外之意  # 说了  # 什么时候  # 你在  # 不多  # 当你  # 而在  # 这句话  # 而不  # 只会  # 给大家 


相关文章: 建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  建站之星安装后界面空白如何解决?  如何用PHP快速搭建高效网站?分步指南  常州自助建站费用包含哪些项目?  制作表格网站有哪些,线上表格怎么弄?  如何在服务器上三步完成建站并提升流量?  如何在服务器上配置二级域名建站?  如何在企业微信快速生成手机电脑官网?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Swift中switch语句区间和元组模式匹配  如何高效利用200m空间完成建站?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  学校建站服务器如何选型才能满足性能需求?  如何通过建站之星自助学习解决操作问题?  建站主机如何选?高性价比方案全解析  制作证书网站有哪些,全国城建培训中心证书查询官网?  建站之星官网登录失败?如何快速解决?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  香港服务器租用每月最低只需15元?  如何续费美橙建站之星域名及服务?  Bpmn 2.0的XML文件怎么画流程图  如何选择香港主机高效搭建外贸独立站?  建站168自助建站系统:快速模板定制与SEO优化指南  公众号网站制作网页,微信公众号怎么制作?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  安云自助建站系统如何快速提升SEO排名?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何快速生成高效建站系统源代码?  如何彻底删除建站之星生成的Banner?  宁波自助建站系统如何快速打造专业企业网站?  如何快速搭建二级域名独立网站?  湖北网站制作公司有哪些,湖北清能集团官网?  ppt制作免费网站有哪些,ppt模板免费下载网站?  大连 网站制作,大连天途有线官网?  制作网站的软件免费下载,免费制作app哪个平台好?  设计网站制作公司有哪些,制作网页教程?  如何在自有机房高效搭建专业网站?  音乐网站服务器如何优化API响应速度?  如何通过NAT技术实现内网高效建站?  如何选择高效可靠的多用户建站源码资源?  如何通过虚拟主机快速完成网站搭建?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  想学网站制作怎么学,建立一个网站要花费多少?  建站之星安装需要哪些步骤及注意事项?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  英语简历制作免费网站推荐,如何将简历翻译成英文?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。