vue-$nextTick

  • vue-cli中$nextTick的作用
    • 案例--切换标签内容
      • 第一种解决方法--使用定时器
      • 第二种方法(重要)---$nextTick

vue-cli中$nextTick的作用

  • 作用:等待页面渲染完毕回调
  • 场景:操作dom的时候,数据修改,页面还没渲染完毕,就去获取数据,会有延迟,获取的是之前的数据

案例–切换标签内容

  • 当我们需要切换标签的内容时,可能会因为没有渲染完毕,直接调用赋值时,会复制到最初没有改变的数据
  <div class="home"><img alt="Vue logo" src="../assets/logo.png"><h1 ref="msg">msg1:{{msg1}}</h1><h2>msg2:{{msg2}}</h2><h3>msg3:{{msg3}}</h3><button @click="changeMsg()">切换</button></div>
name: 'Home',data() {return {msg1 : "你好",msg2 : '',msg3 : ''}},
methods : {changeMsg() {// 第一种// 改变了msg1的值,触发了更新,开始渲染,不一定渲染完毕,// 所以在下面获取的时候获取更新的数据可能有延迟this.msg1 = "我爱我的祖国";this.msg2 = this.$refs.msg.innerHTML;this.msg3 = this.$refs.msg.innerHTML;

第一种解决方法–使用定时器

  • 改变了msg1的值,触发了更新,开始渲染,不一定渲染完毕,
  • 所以在下面获取的时候获取更新的数据可能有延迟
  • 当然我们可以使用定时器或者计时器,设置0毫秒,但是当数据变多时,
  • 就不是很友好
<div class="home"><img alt="Vue logo" src="../assets/logo.png"><h1 ref="msg">msg1:{{msg1}}</h1><h2>msg2:{{msg2}}</h2><h3>msg3:{{msg3}}</h3><button @click="changeMsg()">切换</button></div>
export default {name: 'Home',data() {return {msg1 : "你好",msg2 : '',msg3 : ''}},methods : {changeMsg() {// 第一种// 改变了msg1的值,触发了更新,开始渲染,不一定渲染完毕,// 所以在下面获取的时候获取更新的数据可能有延迟// 当然我们可以使用定时器或者计时器,设置0毫秒,但是当数据变多时,// 就不是很友好this.msg1 = "我爱我的祖国";setTimeout(function() {this.msg2 = this.$refs.msg.innerHTML;this.msg3 = this.$refs.msg.innerHTML;},0)}}
}

第二种方法(重要)—$nextTick

  • 第二种
  • 所以为了解决这个问题,应该使用$nextTick
export default {name: 'Home',data() {return {msg1 : "你好",msg2 : '',msg3 : ''}},methods : {changeMsg() {// 第一种// 改变了msg1的值,触发了更新,开始渲染,不一定渲染完毕,// 所以在下面获取的时候获取更新的数据可能有延迟// 当然我们可以使用定时器或者计时器,设置0毫秒,但是当数据变多时,// 就不是很友好this.msg1 = "我爱我的祖国";setTimeout(function() {this.msg2 = this.$refs.msg.innerHTML;this.msg3 = this.$refs.msg.innerHTML;},0)// 第二种// 所以为了解决这个问题,应该使用$nextTickthis.msg1 = "我爱我的祖国";this.$nextTick( () => {// 渲染完毕再执行这个,所以才能没有延时的更改this.msg2 = this.$refs.msg.innerHTML;})this.msg3 = this.$refs.msg.innerHTML;}}
}
</script>

vue-$nextTick-等待页面渲染完毕的回调相关推荐

  1. Flutter 添加页面渲染完毕回调

    WidgetsBinding.instance.addPostFrameCallback((mag) {print(" 页面渲染完毕"); });

  2. angular监听图片加载完成_angular1.0 如何监听页面渲染完毕 (转)

    Ant Design 提供了一套非常完整的组件化设计规范与组件化编码规范,大幅提高了部分产品的设计研发效率及质量.Ant Design 与 G2 的代码质量和文档质量都非常高,算是阿里提出 " ...

  3. flutter 如何判断页面渲染完毕

    那么在flutter中,我们获取大小也必须在元素渲染完成的时候才行,而有些应用场景要求在第一时间获取到这个元素的大小.那么怎么在第一时间判断元素渲染完成呢?flutter中的WidgetsBuidin ...

  4. python如何校验页面元素是否加载完毕_爬虫(八十七)等待页面加载完成(Waits)...

    现在的大多数的Web应用程序是使用Ajax技术.当一个页面被加载到浏览器时, 该页面内的元素可以在不同的时间点被加载.这使得定位元素变得困难, 如果元素不再页面之中,会抛出 ElementNotVis ...

  5. 「一道面试题」输入URL到渲染全面梳理中-页面渲染篇

    前置知识 此文是一道面试题,又不仅仅是一道面试题,不过这道题共分了三篇来说,嗯..可想而知 接上文,上文我们讲了网络通信的部分,详细请看「一道面试题」输入URL到渲染全面梳理上-网络通信篇, 那么该说 ...

  6. 一文通透从输入URL到页面渲染的全过程----高频面试

    一文通透从输入URL到页面渲染的全过程----高频面试 喜欢大海 喜欢夕阳 写下便是永恒 文章目录 一文通透从输入URL到页面渲染的全过程----高频面试 重温 进程与线程 什么是进程 什么是线程 进 ...

  7. 前端开发这么多年,你真的了解浏览器页面渲染机制吗?

    作者 | 浪里行舟 前言 浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分的,一是渲染引擎,另一个是JS引擎.渲染引擎在不同的浏览器中也不是都相同的.目前市面上常见的浏览器内核可以分为这四种 ...

  8. 同一个页面生成多个sessionid_web页面渲染(一)

    作为开发者,我们经常会面临一些影响我们整个网站结构的决定,其中web开发者一定要做的核心决定之一就是在应用程序中实现逻辑和渲染的位置.这可能比较难,因为有很多不同的方式来构建一个网站. 我们在这一领域 ...

  9. jquery 当页面图片加载之后_在浏览器地址栏输入地址到页面渲染完成发生了什么?(下)...

    上一篇讲了前三步,本篇从第四步开始.下面是正文: 四.进行tcp三次握手,建立tcp连接. 简述一下,第三步我们找到了目标ip,并获得了服务器ip的mac地址.此时浏览器就会请求和服务器连接,用来传输 ...

  10. 后端数据成功返回 页面不渲染_在浏览器地址栏输入地址到页面渲染完成发生了什么?(下)...

    上一篇讲了前三步,本篇从第四步开始.下面是正文: 四.进行tcp三次握手,建立tcp连接. 简述一下,第三步我们找到了目标ip,并获得了服务器ip的mac地址.此时浏览器就会请求和服务器连接,用来传输 ...

最新文章

  1. url传递中文的解决方案
  2. urlencode urldecode
  3. ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测
  4. 2020-11-22(操作系统——页面置换算法)
  5. k8s API编程:kubebuilder实战案例sidecarset
  6. java io体系_java IO流的体系结构图
  7. zabbixdocker里的mysql_docker zabbix安装部署(数据库和web及zabbix服务都用docker版)
  8. 解决!Gallery中嵌套ListView,Gallery不能滑动的问题
  9. 前端获取北京时间_js获取标准北京时间
  10. java做一个客房管理系统定制_基于jsp的客房管理系统-JavaEE实现客房管理系统 - java项目源码...
  11. AtCoder题解——Beginner Contest 168——E - ∙ (Bullet)
  12. 目标跟踪(三)——多目标跟踪
  13. C#山寨版本【天翼拨号客户端】---内含详细抓包,模拟数据---万事俱备,只欠东风。
  14. 第三方社会化评论插件
  15. 搭建 centos7 YUM 源
  16. 最值得你收藏的金字塔之谜详解
  17. canvas:绘制简单春联demo
  18. SO逆向之爱库存sig
  19. Spring JPA自定义SQL分页查询
  20. 【原创】彼得德鲁克《管理的实践》札记(九)

热门文章

  1. 从零开始学MATLAB(一)MATLAB基础知识
  2. opc服务器保存在哪里怎么修改,客户端修改opc服务器的数据
  3. mysql复制表的两种方法
  4. android n换行格式,Android 写文件生成器的时候换行请用\r\n
  5. 登录失败:禁用的当前账户——window共享的傻X问题
  6. Java基础-构造函数
  7. 计算机高程知识点,工程测量重点全部知识点(中国矿业大学)
  8. linux安装qq(deb文件)
  9. scratch 好玩的大鱼吃小鱼
  10. solaris系统学习