vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018-09-29 15:34
1511 查看
背景
之前在做ADTS项目的时候,首页是一个实时监测的页面,需要每隔5秒更新一次数据,而业务逻辑上的需要先请求告警列表的接口的,从告警列表中拿到数据再去获取其他的数据,所以我在获取告警列表的方法中增加了一个定时器。
最开始我是将定时器声明在组件内部的(由于页面不多,数据关联也不太强,所以项目中没有使用store进行数据管理),后来清除的时候发现无法清除,后来索性声明到window下了。然后在组件内部写了如下代码:
发现也没能将定时器清除,后来走debug发现根本就没有进到这个方法中去,然后就去问同事有没有遇到过类似的问题。
解决
后来同事建议我将路由离开事件的代码放到配置了路由的界面中,我试了一下,果然好使,定时器成功清除。
总结
vue的beforeRouteEnter和beforeRouteLeave都要写在配置了路由的界面中才能出发,写在界面所调用的组件内部无法触发。
vue如果没有使用store的话设置定时器可以直接声明在window下,便于清除。
以上这篇vue路由事件beforeRouteLeave及组件内定时器的清除方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- vue路由事件beforeRouteLeave及组件内定时器的清除
- vue移动端iso 利用钩子里面的导航守卫beforeRouteLeave实现返回按钮不返回上一次路由,返回到自己指定的路由
- [问题探讨]VUE导航守卫beforeRouteLeave实现路由跳转拦截
- Vue.js路由组件vue-router的使用方法
- Vue.js自定义事件的表单输入组件方法
- vue2.x 父组件监听子组件事件并传回信息的方法
- vue 父组件调用子组件方法及事件
- 使用vue.js在页面内组件监听scroll事件的方法
- vue-router 多个路由地址绑定一个组件造成 created 不执行的解决方法
- vue---vue2.x中父组件如何触发子组件事件方法?
- 解决element-ui中el-menu组件作为vue-router模式在刷新页面后default-active属性与当前路由页面不一致问题的方法
- vue-router 多个路由地址绑定一个组件造成 created 不执行的解决方法
- Vue.js路由组件vue-router使用方法详解
- Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
- vue路由组件按需加载的几种方法小结
- 解决Vue 浏览器后退无法触发beforeRouteLeave的问题
- 在Vue组件中获取全局的点击事件方法
- Vue 监听列表item渲染事件方法
- vue2.0父子组件间通信的实现方法
- Vue异步组件处理路由组件加载状态的解决方案