Vueにおけるループ内の条件分岐
ループで要素を反復処理する際に、
条件を設定することができます。
しかし、ディレクティブ v-for と v-if は
異なるタグに記述する必要があります。
そうしないと競合が発生します。競合を避けるため、
ディレクティブ v-for は template タグに適用し、
ディレクティブ v-if は挿入されるタグに直接適用します。
例を見てみましょう。 次のような配列があるとします:
data() {
return {
arr: [1, 2, 3, 4, 5],
}
}
この配列をループで反復処理しましょう:
<template>
<ul>
<li v-for="elem in arr">
{{ elem }}
</li>
</ul>
</template>
次に、表示される要素に条件を設定しましょう:
<template>
<ul>
<template v-for="elem in arr">
<li v-if="elem % 2 === 0">
{{ elem }}
</li>
</template>
</ul>
</template>
次の配列が与えられています:
data() {
return {
items: [1, -2, 3, -4, 5],
}
}
この配列をループで反復処理し、 配列の正の要素のみを出力してください。