博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正确理解使用Vue里的nextTick方法
阅读量:7048 次
发布时间:2019-06-28

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

最近,在项目中要使用Swiper做一个移动端轮播插件。需要先异步动态加载数据后,然后使用v-for渲染节点,再执行插件的滑动轮播行为。解决这个问题,我们通过在组件中使用vm.$nextTick来解决这一需求。

一、vm.$nextTick( [callback] )

 

二、Vue.nextTick( [callback, context] )

三、异步更新队列

 

实例:

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渲染已经完成'
)
            
})
        
}
    
}})

或者:

1
2
3
4
5
6
7
8
9
10
11
this
.$http.post(apiUrl)
    
.then((response) => {
    
if 
(response.data.success) {
        
this
.topFocus.data = response.data.data;
        
this
.$nextTick(
function
(){
                    
//渲染完毕
        
});
        
}
    
}).
catch
(
function
(response) {
        
console.log(response);
    
});

 

总结:

* `Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。

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

转载于:https://www.cnblogs.com/Tohold/p/9067841.html

你可能感兴趣的文章
Java中的日期和时间
查看>>
git命令-切换分支
查看>>
小米手机会不会更好
查看>>
linux免密码登录
查看>>
JS比较两个数组是否相等 是否拥有相同元素
查看>>
RPM安装软件
查看>>
SSH 基于ajax实现修改密码功能步骤梳理
查看>>
atitit.Sealink2000国际海运信息管理系统
查看>>
android面试总结01 activity生命周期
查看>>
Java 实现策略(Strategy)模式
查看>>
Python文本爬虫实战
查看>>
leetcode:Gray Code
查看>>
IDEA+PHP+XDebug调试配置
查看>>
javascript学习笔记(一)-廖雪峰教程
查看>>
iOS~判断应用是否有定位权限
查看>>
做接口测试需要哪些技能
查看>>
Nginx(十)-- 进程模型及工作原理
查看>>
辛星浅析一次ajax的实现过程
查看>>
静态网页怎样实现动态交互?-JavaScript
查看>>
JAVA IO操作:数据操作流:DataOutputStream和DataInputStream
查看>>