インデックス形式での繰り返し呼び出しの問題 (setInterval、this.$set、this.$forceUpdate()) は、通常、タイマーと Vue のレンダリング ページ メソッドによって実行されます。

問題は分かりやすく、ビジネス環境で必要な場合、カウントダウンをするなど、ページに入ったらすぐに実行するようにタイマーを置いて、
ページデータ 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

おすすめ

転載: blog.csdn.net/weixin_43311271/article/details/113308267