浅谈vue 组件中的setInterval方法和window的不同


Posted in Javascript onJuly 30, 2020

vue组件中,this指向实例,【实例中重写了setInterval等一整套方法】。所以,千万不能和 window 下挂载的方法混用

具体不同在于,window.setInterval执行完比后返回一个id,而vue实例中返回【定时器对象】,当然该对象中包含一个_id的私有属性

因为 clearInterval 方法参数是id,所以最佳实践是统一使用 window 的方法,不要使用 vue组件的方法

vue中的定时器方法,要使用箭头函数,不要出现 const that = this 的写法

//正确的用法
mounted() {
 // 如果不加 window ,则会使用 vue实例的方法,将无法清除定时器
 this.timer = window.setInterval(() => {
  this.date = new Date();
 }, 2000);
 console.log(this.timer);//number
},
methods: {
 clearTimer() {
  window.clearInterval(this.timer);
  this.timer = null;
 }
}

补充知识:vue 切换页面 setInterval

vue 是单页面应用,路由切换后,定时器并不会自动关闭,需要手动清除,当页面被销毁时,清除定时器即可。

mounted(){
   clearInterval(this.timer);
   this.setTimer();
  },
  destroyed(){
  clearInterval(this.timer)
 }

以上这篇浅谈vue 组件中的setInterval方法和window的不同就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
繁简字转换功能
Jul 19 Javascript
js DOM 元素ID就是全局变量
Sep 20 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
JS创建对象几种不同方法详解
Mar 01 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
详解JavaScript自定义函数
Jul 29 #Javascript
深入了解JavaScript词法作用域
Jul 29 #Javascript
vue监听dom大小改变案例
Jul 29 #Javascript
VUE实时监听元素距离顶部高度的操作
Jul 29 #Javascript
详解JavaScript作用域 闭包
Jul 29 #Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 #Javascript
Vue 监听元素前后变化值实例
Jul 29 #Javascript
You might like
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
javascript类型转换示例
2014/04/29 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
axios学习教程全攻略
2017/03/26 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python实现爬虫下载漫画示例
2014/02/16 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python延时操作实现方法示例
2018/08/14 Python
python中的print()输出
2019/04/12 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
后勤人员自我鉴定
2013/10/20 职场文书
财务会计实训报告
2014/11/05 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
七一表彰大会简报
2015/07/20 职场文书
积极心理学课程心得体会
2016/01/22 职场文书
导游词之西安骊山
2019/12/03 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技
python​格式化字符串
2022/04/20 Python