iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue.nextTick()是什么及怎么用
  • 209
分享到

vue.nextTick()是什么及怎么用

2023-06-30 09:06:10 209人浏览 薄情痞子
摘要

这篇文章主要介绍了Vue.nextTick()是什么及怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue.nextTick()是什么及怎么用文章都会有所收获,下面我们一起来看看吧。概念在下次DOM更新循

这篇文章主要介绍了Vue.nextTick()是什么及怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue.nextTick()是什么及怎么用文章都会有所收获,下面我们一起来看看吧。

概念

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

简单理解:

为了去解决数据更新了但是视图不更新的问题,当数据更新了,在DOM渲染后,自动执行该函数

原理

Vue是异步执行dom更新的,一旦观察到数据变化,Vue就会开启一个队列,然后把在同一个事件循环 (event loop) 当中观察到数据变化的 watcher 推送进这个队列。如果这个watcher被触发多次,只会被推送到队列一次。这种缓冲行为可以有效的去掉重复数据造成的不必要的计算和DOm操作。而在下一个事件循环时,Vue会清空队列,并进行必要的DOM更新。
当你设置 vm.someData = ‘new value’,DOM 并不会马上更新,而是在异步队列被清除,也就是下一个事件循环开始时执行更新时才会进行必要的DOM更新。如果此时你想要根据更新的 DOM 状态去做某些事情,就会出现问题。。为了在数据变化之后等待 Vue 完成更新 DOM ,可以在数据变化之后立即使用 Vue.nextTick(callback) 。这样回调函数在 DOM 更新完成后就会调用。

举例

<template>  <div>    <button ref="btn" @click="handleBtn()">{{ message }}</button>  </div></template><script>export default {  data(){    return{      message:'这个是原始值'    }  },  methods:{    handleBtn:function(){    let that=this    that.message='修改后的值'    console.log(that.$refs.btn.innerText);//这里输出的还是原始值  }  }}</script><style></style>

通过例子可以看到这样的话最终输出的值还是原来的值,下面再看一下使用this.$nextTick()会发生什么?

<template>  <div>    <button ref="btn" @click="handleBtn()">{{ message }}</button>  </div></template><script>export default {  data(){    return{      message:'这个是原始值'    }  },  methods:{    handleBtn:function(){    let that=this    that.message='修改后的值'    this.$nextTick(function(){      console.log(that.$refs.btn.innerText);  //这里输出的是修改后的值    })  }  }}</script><style></style>

通过这个例子就可以明显的看到this.$nextTick()的作用。

注意:

vue实现响应并不是数据发生变化之后DOM立即变化。而是按照一定的策略进行DOM的更新,在使用this.$nextTick()以后,就可以在他的回调中获取到更新后的DOM

应该什么时候使用vue.$nextTick()呢?

  • Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中,原因是在created()钩子函数执行的时候DOM 其实并未进行任何渲染,而此时进行DOM操作无异于徒劳,所以此处一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之对应的就是mounted钩子函数,因为该钩子函数执行时所有的DOM挂载已完成。

  • 项目中你想在改变DOM元素的数据后基于新的dom做点什么,**对新DOM一系列的js操作都需要放进Vue.nextTick()的回调函数中;**通俗的理解是:更改数据后当你想立即使用js操作新的视图的时候需要使用它

<template>  <div>    {{ message }}    <button @click="changeText()">测试</button>  </div></template><script>export default {  data() {    return {      message: "这个是原始值",    };  },  methods: {    changeText () {      let that = this;      this.message = "这是修改后的值";      that.$nextTick(function(){        let txt=document.getElementById('btn').innerText        console.log(txt);        txt==='这个是原始值'? console.log('data的值发生改变时DOM的值没有立即更新') : console.log('data的值发生改变时DOM的值立刻更新了');      })    },  },};</script><style></style>

关于“vue.nextTick()是什么及怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“vue.nextTick()是什么及怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: vue.nextTick()是什么及怎么用

本文链接: https://www.lsjlt.com/news/328026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue.nextTick()是什么及怎么用
    这篇文章主要介绍了vue.nextTick()是什么及怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue.nextTick()是什么及怎么用文章都会有所收获,下面我们一起来看看吧。概念在下次DOM更新循...
    99+
    2023-06-30
  • 一文学会什么是vue.nextTick()
    目录概念原理举例应该什么时候使用vue.$nextTick()呢?概念 在下次DOM更新循环结束之后执行延迟回调,在修改数据之后立即使用这个方法,获取更新后的DOM 简单理解: 为了...
    99+
    2024-04-02
  • LINQ是什么及怎么使用
    本文小编为大家详细介绍“LINQ是什么及怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“LINQ是什么及怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、为什么要使用LINQ要理解为什么使用LIN...
    99+
    2023-06-29
  • jQuery是什么及怎么使用
    这篇文章主要介绍“jQuery是什么及怎么使用”,在日常操作中,相信很多人在jQuery是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jQuery是什么及怎么使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • airodump是什么及怎么使用
    airodump-ng是一款用于无线网络分析的开源工具,它可以扫描周围的无线网络并显示相关的信息,如SSID、MAC地址、加密方式、...
    99+
    2023-09-26
    airodump
  • ​thrift是什么及怎么使用
    Thrift是一个软件框架,用于跨语言的服务开发。它由Apache软件基金会开发和维护,旨在帮助开发人员编写高效和可扩展的客户端-服...
    99+
    2023-10-21
    ​thrift
  • JSONObject是什么及怎么使用
    JSONObject是Java中的一个类,它可以用来表示一个JSON对象。JSON(JavaScript Object Notati...
    99+
    2023-09-12
    JSONObject
  • Xterm.js是什么及怎么使用
    这篇文章主要介绍“Xterm.js是什么及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Xterm.js是什么及怎么使用”文章能帮助大家解决问题。xterm.js是什么xterm是一个使用T...
    99+
    2023-07-04
  • Mybatis是什么及怎么使用
    这篇文章主要介绍“Mybatis是什么及怎么使用”,在日常操作中,相信很多人在Mybatis是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis是什么及怎么使用”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • JumpServer是什么及怎么使用
    JumpServer是一款开源的堡垒机软件,用于管理和控制服务器远程访问权限。它可以帮助管理员集中管理服务器账号和权限,实现对服务器...
    99+
    2023-10-23
    JumpServer
  • Vuex是什么及怎么使用
    这篇文章主要讲解了“Vuex是什么及怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex是什么及怎么使用”吧!一.Vuex是什么?为什么要用它?vuex官方解释Vuex 是一个专为...
    99+
    2023-07-04
  • ChatGPT是什么及怎么使用
    这篇“ChatGPT是什么及怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ChatGPT是什么及怎么使用”文章吧。C...
    99+
    2023-07-04
  • html5的svg是什么及怎么用
    这篇文章主要介绍“html5的svg是什么及怎么用”,在日常操作中,相信很多人在html5的svg是什么及怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html5的sv...
    99+
    2024-04-02
  • mybatis plus是什么及怎么使用
    这篇文章主要介绍“mybatis plus是什么及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis plus是什么及怎么使用”文章能帮助大家解决问题。一、什么...
    99+
    2023-06-30
  • JavaScript闭包是什么及怎么用
    这篇“JavaScript闭包是什么及怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript闭包是什么及怎...
    99+
    2023-07-04
  • Pandas库是什么及怎么使用
    今天小编给大家分享一下Pandas库是什么及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Pandas的介绍pand...
    99+
    2023-07-05
  • JavaBean作用是什么及怎么使用
    JavaBean是一种符合特定约定的Java类,用于封装数据和提供访问和操作这些数据的方法。它的作用是提供一种标准化的方式来组织和操...
    99+
    2023-08-15
    JavaBean
  • python函数及闭包是什么及怎么用
    本篇内容主要讲解“python函数及闭包是什么及怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python函数及闭包是什么及怎么用”吧!函数对象函数对象指...
    99+
    2024-04-02
  • Java NIO是什么及怎么使用
    Java NIO(New IO)是Java 1.4版本中引入的一种用于替代传统Java IO的新的输入输出API。NIO提供了更高效...
    99+
    2023-09-27
    Java
  • ChatGPT是什么及有什么用
    本文小编为大家详细介绍“ChatGPT是什么及有什么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“ChatGPT是什么及有什么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2023-02-22
    chatgpt
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作