全网整合营销服务商

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

免费咨询热线: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()应用实例详解  # 回调  # 就会  # 是在  # 放在  # 需要用  # 文档  # 会有  # 都不  # 出了  # 言外之意  # 说了  # 什么时候  # 你在  # 不多  # 当你  # 而在  # 这句话  # 而不  # 只会  # 给大家 


相关文章: 如何通过虚拟机搭建网站?详细步骤解析  建站之星如何通过成品分离优化网站效率?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  制作宣传网站的软件,小红书可以宣传网站吗?  如何在IIS中配置站点IP、端口及主机头?  建站主机核心功能解析:服务器选择与网站搭建流程指南  建站之星如何助力企业快速打造五合一网站?  手机网站制作与建设方案,手机网站如何建设?  建站主机如何选?性能与价格怎样平衡?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  做企业网站制作流程,企业网站制作基本流程有哪些?  用v-html解决Vue.js渲染中html标签不被解析的问题  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  建站之星如何实现PC+手机+微信网站五合一建站?  如何用wdcp快速搭建高效网站?  宝塔Windows建站如何避免显示默认IIS页面?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  网站制作壁纸教程视频,电脑壁纸网站?  常州企业网站制作公司,全国继续教育网怎么登录?  定制建站价位费用解析与套餐推荐全攻略  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  已有域名能否直接搭建网站?  建站主机选哪家性价比最高?  北京网站制作的公司有哪些,北京白云观官方网站?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何用搬瓦工VPS快速搭建个人网站?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  Swift中swift中的switch 语句  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过VPS建站无需域名直接访问?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何将凡科建站内容保存为本地文件?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  黑客如何利用漏洞与弱口令入侵网站服务器?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何用好域名打造高点击率的自主建站?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  香港服务器网站卡顿?如何解决网络延迟与负载问题?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  jQuery 常见小例汇总  如何选择靠谱的建站公司加盟品牌?  如何在Golang中使用replace替换模块_指定本地或远程路径  如何在阿里云服务器自主搭建网站? 

您的项目需求

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