浅谈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 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
js 中{},[]中括号,大括号使用详解
May 12 Javascript
{}与function(){}选用空对象{}来存放keyValue
May 23 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
Feb 28 Javascript
jQuery验证插件validate使用详解
May 11 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
Aug 02 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
JS返回顶部实例代码
Aug 09 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 Javascript
vue项目首屏打开速度慢的解决方法
Mar 31 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
详解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实现蜘蛛访问日志统计
2013/07/05 PHP
php根据年月获取季度的方法
2014/03/31 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
Display SQL Server Version Information
2007/06/21 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
Python实现新浪博客备份的方法
2016/04/27 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
广场舞大赛策划方案
2014/05/31 职场文书
英语辞职信怎么写
2015/02/28 职场文书
2015年母亲节寄语
2015/03/23 职场文书
正规借条模板
2015/05/26 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
keepalived + nginx 实现高可用方案
2022/12/24 Servers