91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • vue使用setTimeout,離開當前路由setTimeout未銷毀的問題解決方法

vue使用setTimeout,離開當前路由setTimeout未銷毀的問題解決方法

發布時間:2020-07-21 11:43:38 來源:億速云 閱讀:1308 作者:小豬 欄目:開發技術

這篇文章主要講解了vue使用setTimeout,離開當前路由setTimeout未銷毀的問題解決方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

問題:

從第一個頁面跳轉到第二個頁面后,如果停留在第二個頁面,定時器還在運行。如果在兩個頁面之間來回跳轉,跳轉時間小于定時器的間隔時間時,也會出現重復創建setTimeout的情況。

原因:

當我們刷新頁面時,會將當前頁面之前創建的setTimeout以及其他定時器都清除掉,但是僅僅是路由切換是不會清除的。

data () {
  return {
   ct: null
  }
},
methods: {
 start() {
 this.ct= setTimeout( () => {that.countdown(end)}, 1000)
 }
 end() {
 clearTimeout(this.ct); //清除
 }
}

setInterval()計時也需要clearInterval()來清除

補充知識:小記VUE下setTimeOut和setInterval遇到的問題

相信大家對著兩個函數都陌生,就是一個定時器,setTimeOut只執行一次,而setInterval會重復執行

需要注意的是:在setInterval不用的時候一定要用clearSetInterval關閉定時器。

說一下最近開發中遇到的問題,我是用vue開發的,順便記錄這個錯誤。

我需要輪詢接口,所以使用setInterval。

// 我是想沒2秒執行一次myFunc這個函數。
setInterval(this.myFunc(),2000)
//某個函數
myFunc () {
  console.log(123)
}

但實際的運行結果是,只執行了一遍,并沒有循環執行。

原因是setInterval接受兩個參數,第一個為要執行的函數,第二個為時間(毫秒)。

這里我犯的錯誤是,我寫的是一個函數的執行this.myFunc() 因為加了()是一個執行,而不是個函數。

于是我又改成這樣寫了,在寫個匿名函數,函數體是我要執行的。

setInterval(function () {
 this.myFunc()
},2000)
//某個函數
myFunc () {
  console.log(123)
}

理論上這樣是沒問題的,會每2秒執行一次this.myFunc(),但卻報錯了。

原因是 老生常談的javaScript 的this 的問題。

因為用的一個function(){} 這里的 獨立的作用域 this指向了全局(這里是window)而且window里沒有myFunc這個函數,所報了錯。

用過vue的朋友應該,基本vue中都是this.XXX這樣寫。這里的this是Vue對象。

所以為了使this正確指向vue,我用了ES6的尖頭函數。

最終

setInterval(() => {
 this.myFunc()
},2000)
//某個函數
myFunc () {
  console.log(123)
}

尖頭函數因為它的特殊性,它的this指向它外層的對象。

其實主要說的是第二個問題,第一個屬于對函數不熟悉,第二個則是VUE,ES6,this指向綜合的問題。

看完上述內容,是不是對vue使用setTimeout,離開當前路由setTimeout未銷毀的問題解決方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆昌县| 普宁市| 彭泽县| 景东| 黄龙县| 新源县| 萨嘎县| 哈巴河县| 双桥区| 无棣县| 睢宁县| 清河县| 凌云县| 滨海县| 常德市| 佳木斯市| 且末县| 绥滨县| 双牌县| 乃东县| 如皋市| 光泽县| 龙南县| 达拉特旗| 开化县| 抚顺县| 肥乡县| 阿巴嘎旗| 临夏市| 呼图壁县| 三穗县| 黄平县| 赣州市| 剑川县| 阜宁县| 大姚县| 邻水| 土默特右旗| 金乡县| 奈曼旗| 延安市|