所有分类
  • 所有分类
  • 后端开发
告别烦人问题!定时器神招解决百度UEditor存档难题

告别烦人问题!定时器神招解决百度UEditor存档难题

类似于小程序的语音实例,必须离开页面的时候销毁当前语音实例,不然语音会一直播放)该方法是通过$once这个事件侦听器器在定义完定时器之后的位置来清除定时器。以上所述是小编给大家介绍的Vue程序化的事件监听器,希望对大家有所帮助,如果大家有任

大家伙儿,是不是遇见过这种事儿?用那种第三方软件时,老得先把当前的删了再清理存档文件。举个例子,那个百度的UEditor富文本框就是这样子。不清理干净下回用的话很容易出毛病。比如说在小程序里的语音功能,到时候你得确保退出前关闭语音,否则它可能会一直响个没完没了。真是让人头痛!

data() {      
  return {               
    timer: null // 定时器名称     
  }    
},

我们得想个招儿来搞定这个问题我这里倒是有个法子,你看看咋样?首先,咱们可以试试用定时器来实现这个功能。咱们就在需要的组件里随便搞一个计时器就成了。

this.timer = setIterval (() => {
  // 某些操作
}, 1000

记住,别忘了在组件毁灭前清理定时器噢。这样你就可以顺利地搞定定时器了。但是这个方法还有两点小缺点要告诉你先说说,我们得在组件里留下那个叫dataTimer的数据,这就比较烦人了。而且,设置定时器跟清空这些代码是分离的,如果需要批量处理预设功能就算咯。

beforeDestroy() {
  clearInterval(this.timer);    
  this.timer = null;
}

别慌,还有法子的!就是靠$once这个事件侦听器来关闭计时器。是不是觉得很牛逼?其实就是把定时器设好了之后,用$once直接关闭就完事了~

你看看这个让我们把创建和删除的代码放到一起了,你不觉得这就跟好哥们一样默契吗?还有,你可以在同一页上同时操作多个创建和删除,这可真是太简单了

老实跟你说,我觉得方案2好一些。为啥?因为这样代码看着更简单明了。关于$once、$on、$off这些东西怎么用,别急,我来给你普及下Vue事件监听的那点儿事,希望能帮到你。有啥不明白的尽管问,我会尽快回复你哒。谢谢各位对我们网站的支持!今天先说到这儿。希望你们都能学到新知识,别忘了点赞分享当然,你有别的问题或者想了解其他方面的内容,欢迎在评论区留言,我们一起探讨共同进步!

mounted: function () {
 const timer = setInterval(() =>{          
   // 某些定时器操作        
 }, 500);      
 // 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
 this.$once('hook:beforeDestroy', () => {      
   clearInterval(timer);                  
 })
}

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/03/11489.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?