浅谈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 相关文章推荐
Javascript !!的作用
Dec 04 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
在表单提交前进行验证的几种方式整理
Jul 31 Javascript
js获取某元素的class里面的css属性值代码
Jan 16 Javascript
jquery获取当前日期的方法
Jan 14 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 Javascript
Jquery轮播效果实现过程解析
Mar 30 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
May 24 Javascript
JS弹出新窗口被拦截的解决方法
Aug 09 Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 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分页代码学习示例分享
2014/02/20 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
jquery JSON的解析方式
2009/07/25 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
JsRender for object语法简介
2014/10/31 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
python中list循环语句用法实例
2014/11/10 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
大学应届毕业生个人求职信
2013/09/23 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
收银员岗位职责
2015/02/03 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
销售会议开幕词
2016/03/04 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
vue打包时去掉所有的console.log
2022/04/10 Vue.js