Vue里的nextTick方法

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

总结:

  • Vue.nextTick(callback),当数据发生变化,更新后执行回调。
  • Vue.$nextTick(callback),当dom发生变化,更新后执行的回调。
    一、

vm.$nextTick( [callback] )

Vue里的nextTick方法_第1张图片
image.png

二、

Vue.nextTick( [callback, context] )

Vue里的nextTick方法_第2张图片
image.png

三、异步更新队列

Vue里的nextTick方法_第3张图片
image.png

实例:

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

或者:

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发生变化,更新后执行的回调。

你可能感兴趣的:(Vue里的nextTick方法)