vue 全局定时更新 轮询
2023-12-21 17:05:59
首先需要在最外层的父组件定义一个刷新的时间 初始值为nulll, 在定义一个新时间用于监听状态的变化。
data () {
return {
dataTime: 0,
inverterMonTimer: null, // 设置刷新时间 2 分钟一次
}
},
然后再钩子函数中执行定义封装的方法
mounted(){
this.getInverterMonTimer()
},
记得清空定时器
beforeDestroy(){
if (this.inverterMonTimer) {
clearInterval(this.inverterMonTimer);
this.inverterMonTimer = null;
}
},
methods:{
getInverterMonTimer () {
// 判断定时刷新是否存在,存在先清除
if (this.inverterMonTimer) {
clearInterval(this.inverterMonTimer);
this.inverterMonTimer = null;
}
// 实现轮询 两分钟执行一下
this.inverterMonTimer = window.setInterval(() => {
this.dataTime = new Date().getTime();
}, 120000);
},
}
然后再 template 中找到我们的父组件 component 把时间穿进去,在子页面接收并监听这个时间,去触发接口更新后,每间隔时间查询更新接口。
<component
:is="item.is"
ref="component"
:echartsId="item.id"
:style="{background: item.color, overflow: 'hidden'}"
:dataw="item.w"
:datah="item.h"
:dataInfo.sync="item.dataInfo"
:dataTypeList.sync="item.dataTypeList"
:dataTime="dataTime" // 这个是传的的时间
></component>
在需要的子组件中接收props:{}
props:{
dataTime:{
type: Number,
default:() => {
return 0
}
}
},
watch: {
dataTime: {
immediate: true,
handler (val) {
this.getCoalTrackData() //
}
}
},
mounted () { this.getCoalTrackData() // 页面加载后接口调取}
文章来源:https://blog.csdn.net/lzfengquan/article/details/135128435
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!