vue.js 使用计时器自动重新加载/刷新数据

Posted

技术标签:

【中文标题】vue.js 使用计时器自动重新加载/刷新数据【英文标题】:vue.js auto reload / refresh data with timer 【发布时间】:2016-08-03 00:32:42 【问题描述】:

(Vue.js 新手)我从 get 请求中获取数据以显示日历信息。我希望它每 5 分钟更新一次。

文档中没有关于自动重新加载的内容 - 我将如何实现这一点?我是在文件中使用标准 javascript 还是其他什么?

下面是我完整的 app.js:

Vue.component('events', 
    template: '#events-template',

    data: function() 
        return 
            list: []
        
    ,

    created: function() 

        this.fetchEventsList();
    ,

    methods: 

        fetchEventsList: function() 

            this.$http.get('events', function(events) 

                this.list = events;

            ).bind(this);

        

    

);

new Vue(
    el: 'body',


);

【问题讨论】:

【参考方案1】:

无需重新发明***,window.setInterval() 做得很好

Vue.component('events', 
    template: '#events-template',

    data () 
        return 
            list: [],
            timer: ''
        
    ,
    created () 
        this.fetchEventsList();
        this.timer = setInterval(this.fetchEventsList, 300000);
    ,
    methods: 
        fetchEventsList () 
            this.$http.get('events', (events) => 
                this.list = events;
            ).bind(this);
        ,
        cancelAutoUpdate () 
            clearInterval(this.timer);
        
    ,
    beforeDestroy () 
      this.cancelAutoUpdate();
    
);

new Vue(
    el: 'body',
);

【讨论】:

建议:当组件为destroyed()时运行cancelAutoUpdate()

以上是关于vue.js 使用计时器自动重新加载/刷新数据的主要内容,如果未能解决你的问题,请参考以下文章

尽管页面刷新,如何保持计数器倒计时?

Laravel (+ Vue.js) 广播 - 如何设置倒计时然后发送广播消息?

Chromium 自动刷新命令行

持久的 jQuery 倒计时

java Swing表格窗体怎么刷新

ASP网页上的倒计时代码,要求可以防刷新的