vm.$nextTick

  • 参数: {Function} [callback]
  • 用法:将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。
    实例:
<template><div><p ref="msgp">{{msg}}</p><button @click="change">$nextTick</button></div>
</template><script>
export default {name: 'nextTick',data() {return {msg: '未更新'}},methods: {change() {// 修改数据this.msg = '被更新了'// DOM还没有更新console.log(this.$refs.msgp.innerHTML)this.$nextTick(() => {// DOM更新了console.log('$nextTick:' + this.$refs.msgp.innerHTML)})}},created() {}
}
</script>

DOM 的更新是异步的,也就是在数据变化之后,DOM不会立即更新,而是进入队列,等同一时间循环中的所有数据变化完成之后,再统一进行视图更新。
结论:
vue 中的 DOM 更新是异步的
$nextTick() 的应用场景

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

最新文章

  1. 【高并发】并发编程到底应该学什么?一张图秒懂!!
  2. android 流失布局,Android使用RecyclerView实现流式布局的注意事项
  3. Distcp 分布式拷贝
  4. ++i 和 i++的实现
  5. Apache Flink 零基础入门(十三)Flink 计数器
  6. 如何处理non-resolvable parent POM的错误
  7. mysql的条件求和函数_mysql 带条件取count记录数,SUM()函数按条件求和
  8. Android.mk小结
  9. ZeroMQ API简介
  10. 【ide】myeclipse项目右键没有configure
  11. VBS基础教程(收藏)
  12. matlab求一维热传导方程数值解代码,一维热传导方程数值解法及matlab实现
  13. IDEA中 Maven name group、artifact、package区别
  14. 郭霖博客出大事了,而鸿阳大神的博客现在情况暂时还好。
  15. LUAT游戏第一弹---贪吃蛇
  16. N1刷ubuntu用上docker 青龙 傻妞机器人和nolan‘Ark
  17. A - 五军之战 (sdut擂台赛)
  18. 《Test-Driven Development for Embedded C》读书笔记(三)
  19. 高度优先左高树(HBLT) - C语言
  20. 容器(Container)

热门文章

  1. linux mangos创建账号,魔兽mangos系统用户数据自动备份Linux脚本
  2. 国家电网二批计算机面试技巧,国家电网二批次各省份面试形式分析(附往年真题)...
  3. 中秋节祝福——EdmondSung
  4. 关闭数字健康 android 魅族,魅族Flyme数字健康,手机使用情况尽收眼底,还能限制使用...
  5. 技术平台应用开发专题月 | 企业上云利器-YMS(Yon Middleware Service)
  6. php手机图片怎么适配,详解如何使用image-set适配移动端高清屏图片
  7. 植树节小报word手抄报模板来啦
  8. 今天2005年1月6日,不是什么好日子,害我郁闷ing……
  9. abap type 与 like 的区别
  10. satisfy, satisfying, satisfied and satisfactory