Обратный счётчик на vue js

176
04 апреля 2019, 23:50

Не могу сообразить до конца как отобразить на vue обратный таймер

Сам код:

(Часть компонента)

data(){
    return {
        interval: 30,
    }
},
methods: {
    timer() {
        setInterval(function () {
            if (this.interval > 0) {
                this.interval--
            }
        //... Как дальше отобразить не могу сообразить
        }, 1000);
    }
},
mounted() {
    this.timer();
}

Пытаюсь отобразить обратный отсчёт:

{{ interval }}
Answer 1

В mounted запускается таймер методом startTimer(). Таймер запускается через setInterval с промежутком 1000 ms. В момент уничтожения компонента, или когда отсчёт дойдет до нуля, таймер нужно будет выключить, поэтому в методе destroyed помещаем stopTimer(). а в блоке watch отслеживаем текущее время, и если оно окажется равным нулю, то останавливаем.

new Vue({ 
  el: '#app', 
  data: { 
    currentTime: 5, 
    timer: null, 
  }, 
  mounted() { 
    this.startTimer() 
  }, 
  destroyed() { 
    this.stopTimer() 
  }, 
  methods: { 
    startTimer() { 
      this.timer = setInterval(() => { 
        this.currentTime-- 
      }, 1000) 
    }, 
    stopTimer() { 
      clearTimeout(this.timer) 
    }, 
  }, 
  watch: { 
    currentTime(time) { 
      if (time === 0) { 
        this.stopTimer() 
      } 
    } 
  }, 
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script> 
 
 
<div id="app"> 
  <p>{{ currentTime }}</p> 
</div>

READ ALSO
Подключение к БД MYSQL из Windows FormsCc#

Подключение к БД MYSQL из Windows FormsCc#

Как правильно настроить MySQL установленный на Windows 10, что-бы иметь возможность подключения к ней с других пк?

160
Python mysql request

Python mysql request

Обьясни пожалуйста в что делает символ ` при запросе в бд

212
Почему html вид django отличается от того же запущенного файла

Почему html вид django отличается от того же запущенного файла

Я долго ничего не понимал: почему код css был, но он не выполнялся, хотя всё проверял? Решил запустить просто файл html без сервера django, и он сработалСтили...

177