問題は分かりやすく、ビジネス環境で必要な場合、カウントダウンをするなど、ページに入ったらすぐに実行するようにタイマーを置いて、
ページデータ this.set 、 this.set 、 this をレンダリングします。s e t , th i s .forceUpdate () 関数をまとめると、問題があります: レンダリング関数が実行されると、ページは新しいタイマーを
再生成するため、指数関数形式で繰り返し呼び出しが発生します。問題を解決します: 1. タイマーが 1 つしかない場合、タイマーをウィンドウの下で定義し、実行前に判断します。存在する場合は、作成しないか、削除し
ます
。
if(!window.setTime){
window.setTime = setInterval(this.$forceUpdate(),1000)
}
2. 複数のタイマーがある場合、またはタイマーが業務リストのロジックに従って複数のタイマーを生成する必要がある場合
this.timeeT.forEach(item => {
//删除所有定时器
clearInterval(item)
})
this.list.forEach((item, i) => {
//遍历列表数据
if (item.startDate) {
this.timeeT[i] = setInterval(() => {
//通过条件生成多个定时器
this.timee[i] = i+1
console.log(this.timee[i], i)
this.$forceUpdate()
}, 60000)
}
})
この種の問題に対する解決策はインターネット上であまり見つかりませんでした。ここに記録します。より良い解決策があれば、書き留めて一緒に学んでください。0.0