vue组件定时刷新

遇到问题:需要定时刷新获取新的数据进行展示
解决方法:setInterval()定时刷新
备注:在vue项目中,我们该将刷新放在生命周期的mounted阶段。
代码:

       //定时刷新
        mounted() {
            if(this.timer){
                clearInterval(this.timer)
            }else{
                this.timer=setInterval(()=>{
                    //获取数据
                    this.loadData()
                },6000)
            }
        },
        //组件销毁时清除
        destroyed(){
            clearInterval(this.timer)
        },

首先看一下生命周期:
看一段代码:(可粘贴复制直接运行)




    
    



{{ message }}

结果:
vue组件定时刷新_第1张图片
是不是很清楚呀!

所以,我们的setInterval是放在mounted上的。
注: 使用setInterval时this指向的问题,如果我们直接使用this.timer=setInterval(function(){//要触发的函数})报错的,因为this指向的是window,但是我们要触发的函数是挂载在vm实例上的,所以需要使用箭头函数。

你可能感兴趣的:(vue)