博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 之 nextTick 与$nextTick
阅读量:4633 次
发布时间:2019-06-09

本文共 1165 字,大约阅读时间需要 3 分钟。

VUE中Vue.nextTick()和this.$nextTick()怎么使用?

官方文档是这样解释的:

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

虽然 Vue.js 通常鼓励开发人员沿着“数据驱动”的方式思考,避免直接接触 DOM,但是有时我们确实要这么做。比如你在Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中。原因是什么呢,原因是在created()钩子函数执行的时候DOM 其实并未进行任何渲染,而此时进行DOM操作无异于徒劳,所以此处一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。

Vue.component('example', {

template: '<span>{
{ message }}</span>',
data: function () {
return {
message: 'not updated'
}
},
methods: {
updateMessage: function () {
this.message = 'updated'
console.log(this.$el.textContent) // => 'not updated'
this.$nextTick(function () {
console.log(this.$el.textContent) // => 'updated'
})
}
}
}
---------------------
`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。

`Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。

实例:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<ul id=
"demo"
>
    
<li v-
for
=
"item in list"
>{
{item}}</div>
</ul>
 
new 
Vue({
    
el:
'#demo'
,
    
data:{
        
list=[0,1,2,3,4,5,6,7,8,9,10]
    
},
    
methods:{
        
push:
function
(){
            
this
.list.push(11);
            
this
.nextTick(
function
(){
                
alert(
'数据已经更新'
)
            
});
            
this
.$nextTick(
function
(){
                
alert(
'v-for渲染已经完成'
)
            
})
        
}
    
}})
 

转载于:https://www.cnblogs.com/sweet-ice/p/10518069.html

你可能感兴趣的文章
AttributeError: 'dict' object has no attribute 'status_code'
查看>>
poj2135最小费用最大流经典模板题
查看>>
hdu 4355 Party All the Time (2012 Multi-University Training Contest 6 ) 三分搜索
查看>>
POJ 2528 Mayor's posters(线段树)
查看>>
【转】[退役]纪念我的ACM——headacher@XDU
查看>>
利用STl实现队列
查看>>
android中The connection to adb is down,问题和解决 AndroidEclipseAntXML
查看>>
项目需求分析与建议
查看>>
UVa 10112 - Myacm Triangles
查看>>
给同一个按钮添加单双击事件
查看>>
form
查看>>
powershell输出错误信息到文件
查看>>
VS不显示最近打开的项目
查看>>
wcf客户端捕获异常
查看>>
MyEclipse安装Freemarker插件
查看>>
计算多项式的值
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
day44前端开发1之html基础
查看>>
小甲鱼-004改进小游戏
查看>>