$nextTick的用法
2024-04-24 12:44:48
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()
的回调函数中。
最新文章
- 【高并发】并发编程到底应该学什么?一张图秒懂!!
- android 流失布局,Android使用RecyclerView实现流式布局的注意事项
- Distcp 分布式拷贝
- ++i 和 i++的实现
- Apache Flink 零基础入门(十三)Flink 计数器
- 如何处理non-resolvable parent POM的错误
- mysql的条件求和函数_mysql 带条件取count记录数,SUM()函数按条件求和
- Android.mk小结
- ZeroMQ API简介
- 【ide】myeclipse项目右键没有configure
- VBS基础教程(收藏)
- matlab求一维热传导方程数值解代码,一维热传导方程数值解法及matlab实现
- IDEA中 Maven name group、artifact、package区别
- 郭霖博客出大事了,而鸿阳大神的博客现在情况暂时还好。
- LUAT游戏第一弹---贪吃蛇
- N1刷ubuntu用上docker 青龙 傻妞机器人和nolan‘Ark
- A - 五军之战 (sdut擂台赛)
- 《Test-Driven Development for Embedded C》读书笔记(三)
- 高度优先左高树(HBLT) - C语言
- 容器(Container)
热门文章
- linux mangos创建账号,魔兽mangos系统用户数据自动备份Linux脚本
- 国家电网二批计算机面试技巧,国家电网二批次各省份面试形式分析(附往年真题)...
- 中秋节祝福——EdmondSung
- 关闭数字健康 android 魅族,魅族Flyme数字健康,手机使用情况尽收眼底,还能限制使用...
- 技术平台应用开发专题月 | 企业上云利器-YMS(Yon Middleware Service)
- php手机图片怎么适配,详解如何使用image-set适配移动端高清屏图片
- 植树节小报word手抄报模板来啦
- 今天2005年1月6日,不是什么好日子,害我郁闷ing……
- abap type 与 like 的区别
- satisfy, satisfying, satisfied and satisfactory