欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue中定時器setInterval的使用及說明

 更新時間:2023年03月02日 15:02:22   作者:奧特蛋_mm  
這篇文章主要介紹了vue中定時器setInterval的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

深坑

自己在項目中使用setInterval,由于不正確的使用,竟然導致了瀏覽器崩潰,項目停止,電腦死機…可怕之極,下面詳細寫一下關于定時器的用法及注意事項

聲明

    mouted() {
    	this.timer = setInterval(()=>{
    	// 要執(zhí)行的函數
    	})
    }

銷毀

destoryed() {
	this.clearInterval(this.timer)
}

看起來是很簡單也沒有什么,但是坑來了,實際項目中使用

在這里插入圖片描述

    addSetInterval() {
      const that = this
      this.positionTimer = setInterval(() => {
        if (that.resultArr.length < that.times) {
          clearInterval(that.positionTimer)
          that.positionTimer = null
          console.log(that.times)
        } else {
          // 分批部署基站
          if (that.times < that.resultArr.length) {
            that.deployBaseStation()
            console.log('渲染數組的第' + that.times + '項')
          }
          that.times++
        }
        console.log(1111111111111)
      }, 500)
    },

由于這里定義了定時器,箭頭函數內部和外部的作用域不同了,要定義一個變量來使函數內部使用vue數據的時候指向不出錯,

that 是指vue , this是指定時器 positionTimer

之前為了確認定時器已經停止了,在destory中和定時器中都輸出了定時器的值,即 console.log(this.positionTimer),然而,上圖

在這里插入圖片描述

離開當前路由,再回到當前路由,之后控制臺打印

在這里插入圖片描述

然后不久之后就是

在這里插入圖片描述

WTF???

在請教了同學之后,她說可能跟我打印定時器也有關系,輸出的時候調用了定時器,導致定時器關閉失敗,我也是真的無奈了,一開始也沒有定義額外的變量來確定this的指向,具體原因不明,總之,在不輸出定時器,改加了額外的變量之后,定時器停止了

最終代碼如下:

  destroyed() {
    clearInterval(this.positionTimer)// 清除定時器
    this.positionTimer = null
    // 離開路由之后斷開websocket連接
    this.webSocketOnClose()
    this.websocketclose()
  },
  methods: {
    // 添加定時器
    addSetInterval() {
      const that = this  // 聲明一個變量指向vue實例this,保證作用域一致
      this.positionTimer = setInterval(() => {
        if (that.resultArr.length < that.times) {
          clearInterval(that.positionTimer)
          that.positionTimer = null
          console.log(that.times)
        } else {
          // 分批部署基站
          if (that.times < that.resultArr.length) {
            that.deployBaseStation()
            console.log('渲染數組的第' + that.times + '項')
          }
          that.times++
        }
        console.log(1111111111111)
      }, 500)
    },

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • VUE3自定義指令防止重復點擊多次提交的實現方法

    VUE3自定義指令防止重復點擊多次提交的實現方法

    vue3項目,新增彈框連續(xù)點擊確定按鈕防止多次提交,在按鈕上添加自定義指令,這篇文章主要介紹了VUE3自定義指令防止重復點擊多次提交的實現方法,需要的朋友可以參考下
    2024-08-08
  • vue-router 4使用實例詳解

    vue-router 4使用實例詳解

    雖然 vue-router 4 大多數 API 保持不變,但是在 vue3 中以插件形式存在,所以在使用時有一定的變化。接下來就學習學習它是如何使用的
    2021-11-11
  • Element InputNumber 計數器的實現示例

    Element InputNumber 計數器的實現示例

    這篇文章主要介紹了Element InputNumber 計數器的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • vue中this.$emit使用方法的實際案例

    vue中this.$emit使用方法的實際案例

    this.$emit()的作用大家應該也都知道,主要用于子組件像父組件傳值,這篇文章主要給大家介紹了關于vue中this.$emit使用方法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • vue項目從node8.x升級到12.x后的問題解決

    vue項目從node8.x升級到12.x后的問題解決

    這篇文章主要介紹了vue項目從node8.x升級到12.x后的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 詳解VSCode配置啟動Vue項目

    詳解VSCode配置啟動Vue項目

    這篇文章主要介紹了VSCode配置啟動Vue項目,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 解決element ui el-row el-col里面高度不一致問題

    解決element ui el-row el-col里面高度不一致問題

    這篇文章主要介紹了解決element ui el-row el-col里面高度不一致問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue打包時不刪除dist里的原有文件配置方法

    vue打包時不刪除dist里的原有文件配置方法

    這篇文章主要為大家介紹了vue打包時不刪除dist里的原有文件配置方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • vue2創(chuàng)建高復用組件的方法示例

    vue2創(chuàng)建高復用組件的方法示例

    Vue2中的高復用組件通常是指那些設計得足夠通用,并能多次在項目中重復使用的組件,本文給大家詳細介紹了vue2創(chuàng)建高復用組件的方法示例,并通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Vue使用Three.js加載glTF模型的方法詳解

    Vue使用Three.js加載glTF模型的方法詳解

    這篇文章主要給大家介紹了關于Vue使用Three.js加載glTF模型的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-06-06

最新評論