vuejs的this.$nextTick()

首先来看问题:当点击按钮的时候执行msgFn这个方法,毋庸置疑,此时视图的值应该为3333,按照常理,此时后台打印出来的也应该是3333。

但是事实是这样吗?我们接着往下看。

 这是打印出来的DOM值:

 视图显示的却是3333,然而打印出来的确实原先的“前端小姐姐”。

这是什么原因呢?

其实很简单,就是vue执行DOM的更新是异步的,不是我们想的同步执行。在vue中,只要观察到data里面的数据改变了,它就会把更新DOM这件事缓存在事件模型(事件循环)里面。它这样做是为了避免不必要的多次计算和多次重复的操作(比如重复点击)。所以在数据更新后,它不会立即执行,只会等到清空这个事件后才会去执行。

如果不想被vue这种事件支配,而是想立即更新,或者立即更新后搞点什么事情,那么我们就要用到this.$nextTick()这个方法。

作用:处理vue中DOM的异步更新

简单理解:当数据更新时,在DOM渲染之后,会自动执行callback函数

用法:this.$nextTick(callback) 

使用this.$nextTick()后:

js:

 视图和后台:

完结~~~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值