浅谈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 相关文章推荐
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
jquery分页插件jpaginate在IE中不兼容问题
Apr 22 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
浅析JavaScript 函数柯里化
Sep 08 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开发Apache服务器配置
2015/07/15 PHP
PHP goto语句用法实例
2019/08/06 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
win10系统中安装scrapy-1.1
2016/07/03 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python实现调度算法代码详解
2017/12/01 Python
python 输出上个月的月末日期实例
2018/04/11 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
AOP的定义以及作用
2013/09/08 面试题
C/C++程序员常见面试题一
2012/12/08 面试题
药学专业大学生个人的自我评价
2013/11/04 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
Java异常体系非正常停止和分类
2022/06/14 Java/Android