반응형
setInterval
let timerId = setInterval(func|code, [delay], [arg1], [arg2], ...)
setInterval은 함수를 주기적으로 실행하게 만듭니다.
함수 호출을 중단하려면 clearInterval(timerId)을 사용하면 됩니다.
예제
Vue 에서 3분타이머 만들기
export default {
name: "Timer",
data: function() {
return {
Timer: null,
TimeCounter: 180,
TimerStr: "03:00"
};
},
mounted: function() {
//문자발송성공시 호출
if(this.Timer != null){
this.timerStop(this.Timer);
this.Timer = null;
}
this.Timer = this.timerStart();
},
methods: {
timerStart: function() {
// 1초에 한번씩 start 호출
this.TimeCounter = 180;
var interval = setInterval(() => {
this.TimeCounter--; //1초씩 감소
this.TimerStr = this.prettyTime();
if (this.TimeCounter <= 0) this.timerStop(interval);
}, 1000);
return interval;
},
timerStop: function(Timer) {
clearInterval(Timer);
this.TimeCounter = 0;
},
prettyTime: function() {
// 시간 형식으로 변환 리턴
let time = this.TimeCounter / 60;
let minutes = parseInt(time);
let secondes = Math.round((time - minutes) * 60);
return (
minutes.toString().padStart(2, "0") +
":" +
secondes.toString().padStart(2, "0")
);
},
},
};
참조:
728x90
반응형
'Web > Vue' 카테고리의 다른 글
[Vue] 4-2. Component 자식에서 부모로 데이터전송 (0) | 2021.11.16 |
---|---|
[Vue] 4-1. Component 부모에서 자식으로 데이터전송 (0) | 2021.11.15 |
[Vue] 3. 페이지이동 및 변수사용 (0) | 2021.03.12 |
[Vue] 2-2. 프로젝트 생성 (Manually select features) (0) | 2021.03.11 |
[Vue] 2-1. 프로젝트 생성 (0) | 2021.03.10 |