vueでv-ifとv-forは同じラベルで使えますか-NO
1591 ワード
v-if
がv-for
と共に使用される場合、v-for
はv-if
よりも高い優先度を有し、これは、v-if
がそれぞれv-for
サイクル毎に繰り返し実行されることを意味するしたがって、v-ifとv-forの併用は推奨されません
一、同時に使用すべきでない
v-forとv-ifは一緒に使うべきではありません.理由:
v-for
はv-if
より優先され、すなわち、毎回配列全体を遍歴し、速度に影響を与える必要がある.たとえば、プロジェクトを再構築するときに発生する古いコード:
一連のブロックをループして生成しようとするが、シーケンス番号1以降のコンテンツを生成するのではなく、
v-if
とv-for
を併用すると、やはり配列全体に基づいてすべてのブロックが生成され、v-if
が余分な時間を与え、非常にリソースを消費していると判断する.二、解決1、必要に応じてcomputed属性に置き換えるべきである.computed: {
fileMsgListCom() {
return this.fileMsgList.filter((item, index) => {
return item < 2;
});
}
}
2、
v-if
をv-show
に変更するこの
v-for
上層にv-for
ループがある場合、ここでは上層ループオブジェクトの1つの配列を取ってループを継続するだけで(実はここでプロジェクトが直面しているのはこの問題)、computed計算属性を使用してどのように計算するか(多層ループ後のこの配列の内容を取得できない)は考えられません.v-if
をv-show
に変更して共存してもよい.