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

vue中定時(shí)器setInterval的使用及說明

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

深坑

自己在項(xiàng)目中使用setInterval,由于不正確的使用,竟然導(dǎo)致了瀏覽器崩潰,項(xiàng)目停止,電腦死機(jī)…可怕之極,下面詳細(xì)寫一下關(guān)于定時(shí)器的用法及注意事項(xiàng)

聲明

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

銷毀

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

看起來是很簡(jiǎn)單也沒有什么,但是坑來了,實(shí)際項(xiàng)目中使用

在這里插入圖片描述

    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('渲染數(shù)組的第' + that.times + '項(xiàng)')
          }
          that.times++
        }
        console.log(1111111111111)
      }, 500)
    },

由于這里定義了定時(shí)器,箭頭函數(shù)內(nèi)部和外部的作用域不同了,要定義一個(gè)變量來使函數(shù)內(nèi)部使用vue數(shù)據(jù)的時(shí)候指向不出錯(cuò),

that 是指vue , this是指定時(shí)器 positionTimer

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

在這里插入圖片描述

離開當(dāng)前路由,再回到當(dāng)前路由,之后控制臺(tái)打印

在這里插入圖片描述

然后不久之后就是

在這里插入圖片描述

WTF???

在請(qǐng)教了同學(xué)之后,她說可能跟我打印定時(shí)器也有關(guān)系,輸出的時(shí)候調(diào)用了定時(shí)器,導(dǎo)致定時(shí)器關(guān)閉失敗,我也是真的無奈了,一開始也沒有定義額外的變量來確定this的指向,具體原因不明,總之,在不輸出定時(shí)器,改加了額外的變量之后,定時(shí)器停止了

最終代碼如下:

  destroyed() {
    clearInterval(this.positionTimer)// 清除定時(shí)器
    this.positionTimer = null
    // 離開路由之后斷開websocket連接
    this.webSocketOnClose()
    this.websocketclose()
  },
  methods: {
    // 添加定時(shí)器
    addSetInterval() {
      const that = this  // 聲明一個(gè)變量指向vue實(shí)例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('渲染數(shù)組的第' + that.times + '項(xiàng)')
          }
          that.times++
        }
        console.log(1111111111111)
      }, 500)
    },

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VUE3自定義指令防止重復(fù)點(diǎn)擊多次提交的實(shí)現(xiàn)方法

    VUE3自定義指令防止重復(fù)點(diǎn)擊多次提交的實(shí)現(xiàn)方法

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

    vue-router 4使用實(shí)例詳解

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

    Element InputNumber 計(jì)數(shù)器的實(shí)現(xiàn)示例

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

    vue中this.$emit使用方法的實(shí)際案例

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

    vue項(xiàng)目從node8.x升級(jí)到12.x后的問題解決

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

    詳解VSCode配置啟動(dòng)Vue項(xiàng)目

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

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

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

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

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

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

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

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

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

最新評(píng)論