Подтвердить что ты не робот

Vue.js автоматически перезагружает/обновляет данные таймером

(Новый для Vue.js) Я извлекаю данные из запроса получения для отображения информации календаря. Я хочу, чтобы это обновление каждые 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',


});
4b9b3361

Ответ 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 () {
      clearInterval(this.timer)
    }
});

new Vue({
    el: 'body',
});