在vue3原生代码中如何实现页面轮询
时间: 2024-02-20 22:00:42 浏览: 87
在Vue 3中,可以使用`setInterval`函数来实现页面轮询。以下是一个简单的示例代码:
```javascript
import { onMounted, onUnmounted, reactive } from 'vue';
export default {
setup() {
const state = reactive({
data: null,
intervalId: null,
});
const fetchData = () => {
// 发送请求获取数据
// ...
state.data = responseData;
};
onMounted(() => {
// 页面加载时启动轮询
state.intervalId = setInterval(fetchData, 5000);
});
onUnmounted(() => {
// 页面卸载时停止轮询
clearInterval(state.intervalId);
});
return {
state,
};
},
};
```
在上面的代码中,我们使用`reactive`函数创建了一个响应式的状态对象`state`,其中包含了轮询所需的数据`data`和计时器的ID`intervalId`。在`fetchData`函数中发送HTTP请求获取数据,并将数据更新到`state.data`中。在`onMounted`钩子函数中,我们使用`setInterval`函数启动轮询,并将计时器的ID保存到`state.intervalId`中。在`onUnmounted`钩子函数中,我们使用`clearInterval`函数停止轮询,以免页面卸载后仍然执行轮询操作。最后,我们将`state`对象暴露出去,以便在模板中访问轮询数据。
阅读全文