怎样监听vue.js中v-for全部渲染完成?

关注者
16
被浏览
16,811

6 个回答

二话不说,先放api
vue.js
vue里面本身带有两个回调函数:
一个是`Vue.nextTick(callback)`,当数据发生变化,更新后执行回调。
另一个是`Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。
栗子:
...
<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渲染已经完成')
            })
        }
    }
})



====================
另外,vue中文文档写得很详细的。。。仔细找找会找到你要的api
在监视数据改变的语句后,加上this.$nextTick(function(){ })。里面的函数在DOM渲染后执行