vueでv-ifとv-forは同じラベルで使えますか-NO


v-ifv-forと共に使用される場合、v-forv-ifよりも高い優先度を有し、これは、v-ifがそれぞれv-forサイクル毎に繰り返し実行されることを意味する
したがって、v-ifとv-forの併用は推奨されません
一、同時に使用すべきでない
v-forとv-ifは一緒に使うべきではありません.理由:v-forv-ifより優先され、すなわち、毎回配列全体を遍歴し、速度に影響を与える必要がある.たとえば、プロジェクトを再構築するときに発生する古いコード:

一連のブロックをループして生成しようとするが、シーケンス番号1以降のコンテンツを生成するのではなく、v-ifv-forを併用すると、やはり配列全体に基づいてすべてのブロックが生成され、v-ifが余分な時間を与え、非常にリソースを消費していると判断する.二、解決1、必要に応じてcomputed属性に置き換えるべきである.
computed: {
  fileMsgListCom() {
    return this.fileMsgList.filter((item, index) => {
      return item < 2;
    });
  }
} 

2、v-ifv-showに変更する
このv-for上層にv-forループがある場合、ここでは上層ループオブジェクトの1つの配列を取ってループを継続するだけで(実はここでプロジェクトが直面しているのはこの問題)、computed計算属性を使用してどのように計算するか(多層ループ後のこの配列の内容を取得できない)は考えられません.v-ifv-showに変更して共存してもよい.