본문 바로가기
vue

vue3 페이지 몇초후 이동

by uni:D 2024. 7. 29.
반응형

#1. vue3 페이지 몇초후 이동

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<template>
  <div>
    <h2>홈 페이지</h2>
    <p>현재 페이지는 홈입니다. 몇 초 후에 자동으로 이동합니다.</p>
  </div>
</template>
 
<script setup>
import { onMounted, onUnmounted } from 'vue';
import { useRouter } from 'vue-router';
 
const router = useRouter();
 
const navigateToAbout = () => {
  router.push({ name'About' });
};
 
onMounted(() => {
  const interval = setInterval(navigateToAbout, 5000);
 
  onUnmounted(() => {
    clearInterval(interval);
  });
});
</script>
cs

 

 

#2. vue3 페이지 몇초후 이동 + 버튼클릭, 인풋 입력 이벤트 발생시 페이지 이동하는 시간 늘림

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<template>
  <div>
    <h2>홈 페이지</h2>
    <p>현재 페이지는 홈입니다. 버튼 클릭이나 입력이 없으면 자동으로 이동합니다.</p>
    <button @click="resetTimer">버튼 클릭</button>
    <input v-model="inputValue" @input="resetTimer" placeholder="입력하세요" />
  </div>
</template>
 
<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { useRouter } from 'vue-router';
 
const router = useRouter();
const inputValue = ref('');
let timer = null;
const delay = 10000// 페이지 이동 지연 시간 (10초)
 
const navigateToAbout = () => {
  router.push({ name'About' });
};
 
const resetTimer = () => {
  if (timer) {
    clearTimeout(timer);
  }
  timer = setTimeout(navigateToAbout, delay);
};
 
onMounted(() => {
  // 페이지가 마운트될 때 타이머 설정
  resetTimer();
});
 
onUnmounted(() => {
  if (timer) {
    clearTimeout(timer);
  }
});
</script>
cs
반응형

'vue' 카테고리의 다른 글

vuetify3 클릭시 아이콘변경 show 구조  (0) 2024.08.02
v-model  (0) 2024.08.01
quasar 사용법  (0) 2024.07.09
vue3+quasar  (0) 2024.07.04
vue3+swiper  (0) 2024.06.29