レコード-vueでsettimeoutを使用して、現在のルーティングsettimeoutから破棄されていない問題
640 ワード
質問:最初のページから2番目のページにジャンプした後、2番目のページに滞在している場合、タイマーはまだ実行されています.2つのページ間でジャンプし、ジャンプ時間がタイマの間隔時間より小さい場合、settimeoutの繰り返し作成も発生します.
理由:ページをリフレッシュすると、現在のページの前に作成したsettimeoutや他のタイマは消去されますが、ルーティング切り替えだけでは消去されません.
解決:具体コード:`
`
理由:ページをリフレッシュすると、現在のページの前に作成したsettimeoutや他のタイマは消去されますが、ルーティング切り替えだけでは消去されません.
解決:具体コード:`
data () {
return {
overtimer: null
}
},
methods: {
stoptime () {
clearTimeout(this.overtimer);
}
},
created () {
this.overtimer = setTimeout(() => {
this.$Message.error(' ');
}, 10000)
this.$once('hook:beforeDestroy', () => {
clearInterval(this.overtimer);
this.overtimer = null;
})
}
`