vue3如何在函数外部调用clearInterval
时间: 2023-09-24 17:12:31 浏览: 166
vue离开当前页面触发的函数代码
5星 · 资源好评率100%
在Vue 3中,你可以使用`ref`或`reactive`来创建一个可响应的变量,然后在函数外部使用`watch`来监听该变量的变化,并在满足特定条件时调用`clearInterval`。
下面是使用Vue 3的代码示例:
```javascript
import { ref, watch } from 'vue';
// 创建一个可响应的变量
const timer = ref(null);
function pollAuthStatus() {
// 轮询后端接口检查用户是否已经授权绑定成功
timer.value = setInterval(() => {
// ...
// 检查授权状态的逻辑
// ...
}, 2000);
}
// 在函数外部监听 timer 变量的变化
watch(timer, (newTimer) => {
if (newTimer === null) {
clearInterval(timer.value);
}
});
// 在外部调用 clearInterval(timer.value)
pollAuthStatus();
clearInterval(timer.value);
```
首先,我们使用`ref(null)`创建一个可响应的变量`timer`,并将其初始值设置为`null`。然后,定义`pollAuthStatus()`函数,在函数内部使用`timer.value = setInterval(...)`来更新`timer`的值。
在函数外部使用`watch`函数来监听`timer`变量的变化。当`timer`的值变为`null`时,即调用`clearInterval(timer.value)`。
最后,在外部调用`pollAuthStatus()`函数后,你可以使用`clearInterval(timer.value)`来清除定时器。
阅读全文