通常、クリアタイマーは、ページが破棄されるとクリアされます。
this.timer= setInterval(()=>{
console.log("我刷新了")
},15000)
destroyed(){
clearInterval(this.timer)
}
ただし、これを行うことは、バックグラウンド管理ページでは機能しません。
問題は、背景を書くときに、メインページ(つまり、ヘッダー、サイドナビゲーションバー、下部、中央のコンテンツを含む)を習慣的に設定し、すべてのサブページを中央のコンテンツに配置することです。サブページにタイマーを設定する場合、他のサブページに切り替えても実際にはページが離れることはありませんが、メインページにとどまるため、destroyed(){}でクリアタイマーを設定しても効果はありません。
基本的に:サブコンポーネントのタイマーをクリアします。
解決策:ルートを離れるときに、beforeRouteLeave(to、from、next){}をクリアします。
メソッドは子コンポーネントに配置されます
this.timer= setInterval(()=>{
console.log("我刷新了")
},15000)
beforeRouteLeave (to, from, next) {
console.log("我离开了")
clearInterval(this.timer)
next()
}
next()を追加する必要があることに注意してください。追加しないと、サイドバーのナビゲーションバーが切り替えられたときに切り替えルートが無効になり、ページを切り替えることができなくなります。