728x90
처음 화면이고 저 시작 버튼을 누르면 인터벌을 생성해서 일정 시간마다 데이터를 불러오는 함수를 실행시켜볼 생각이다.
먼저 data() 안에 사용할걸 추가
그리고 <template> 안에 버튼 추가
<v-btn small color="red darken-3" @click="stop_auto_reload" v-if="auto_reload === true">
<v-icon small>mdi-pause</v-icon> 정지
</v-btn>
<v-btn small color="blue darken-3" @click="start_auto_reload" v-else>
<v-icon small>mdi-play</v-icon> 시작
</v-btn>
(VuetifyJS를 사용한 버튼입니다.)
auto_reload의 값에 따라 보이는 버튼을 다르게 만들었다.
methods 쪽에 이제 함수를 추가
start_auto_reload() {
console.log('start!!');
this.auto_reload = true;
this.auto_reload_func = setInterval(() => {
this.getData(true);
}, this.auto_reload_delay)
},
stop_auto_reload() {
console.log('stop!!');
this.auto_reload = false;
clearInterval(this.auto_reload_func);
},
시작을 누르면 this.auto_reload_func 안에 setInterval을 만들어주고, 정지를 누르면 this.auto_reload_func를 clearInterval 시켜주면 끝
그리고 인터벌을 만들고 다른 페이지로 이동해도 계속 돌기 때문에 그럴 의도가 있는 게 아니라면 destroyed()에서도 clearInterval을 해줘야 한다.
반응형
'VueJS' 카테고리의 다른 글
[VueJS] v-if 와 v-show (0) | 2021.07.09 |
---|---|
[VueJS] Vuetify v-datepicker min, max 속성 활용하기 (0) | 2021.07.08 |
[VueJS] 부모 컴포넌트에서 자식 컴포넌트 함수 실행 (0) | 2021.06.24 |
[VueJS] VuetifyJS v-checkbox confirm 문제와 해결방법 (0) | 2021.05.29 |
[VueJS] Vuetify v-btn 에 외부 링크 넣기 (0) | 2021.05.21 |