在运行better-scroll 这类组件的时候

请设置延时,一定要保证在DOM渲染完毕后初始化better-scroll

可以设置

setTimeout(() => { 
this._initScroll() 
}, 20)

或者

this.$nextTick(() => { 
this._initScroll() 
})

 

然后在vue中nextTick和$nextTick的差别可以用一下例子来区分

<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.nextTick(callback)`,当数据发生变化,更新后执行回调。
* `Vue.$nextTick(callback)`,当dom发生变化,更新后执行的回调。
posted on 2018-04-18 19:18  bainchengemeda  阅读(160)  评论(0编辑  收藏  举报