상세 컨텐츠

본문 제목

setInterval 함수

vue

by Goyoungjung 2023. 7. 25. 11:14

본문

setInterval(callback, delay[, arg1, arg2, ...]);

JavaScript에서 주어진 시간 간격마다 지정된 함수를 반복적으로 실행하는 타이머 메소드

일정한 시간 간격으로 작업이 반복되어야 할 때 유용하게 사용

 

callback : 지정된 시간 간격마다 호출될 함수로, 일종의 콜백 함수. 즉, 이 함수가 반복적으로 실행

delay : 콜백 함수를 실행하기 전에 기다릴 시간 간격

arg1, arg2, ... : 선택적 매개변수로, 콜백 함수에 전달될 인수

 

setInterval()로 시작한 반복 작업은 clearInterval() 함수를 사용하여 중지할 수 있다.

 

<template>
  <input v-model="inputText" @input="handleInput" />
  {{ inputText }}
  <div>
    <span>timer</span>
    <p v-if="timer > 0">카운트 다운: {{ timer }}</p>
    <p v-else>타이머 종료</p>
  </div>
</template>

<script>
export default {
  name: "App",
  components: {},
  data() {
    return {
      inputText: "",
      timer: 60,
      interval: null,
    };
  },
  methods: {
    handleInput() {
      // 키 입력 시마다 기존 타이머를 중지하고 새로운 타이머를 시작합니다.
      if (this.interval) {
        return;
      }

      // 타이머가 종료될 때까지 1초마다 countdown 값을 감소시킵니다.
      this.interval = setInterval(() => {
        if (this.timer > 0) {
          this.timer--;
        } else {
          clearInterval(this.interval);
        }
      }, 1000);
    },
  },
};
</script>

'vue' 카테고리의 다른 글

this.$nextTick()  (0) 2023.07.19
Vue.js ref와 reactive 차이점  (0) 2023.07.18
Vuex, To-Do List  (0) 2023.07.17

관련글 더보기