0Pricing
Vue Academy · レッスン

条件分岐とループ

v-ifで条件付きレンダリングを行い、v-forでリストを表示します

「条件分岐とループ」はCoddyKit上の無料Vue Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはVue Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Vue Academyコースには全3レッスンが含まれています。

条件付きレンダリング

Vueでは、データに応じてUIの一部を表示したり非表示にしたりできます。

  • v-ifで要素を条件付きでレンダリングします
  • v-else-ifとv-elseで条件を連結します
  • v-showで表示状態を切り替えます

v-if

v-ifディレクティブは、式が真と評価された場合にのみ要素をレンダリングします。

<p v-if="isLoggedIn">Welcome back!</p>
<p v-if="cart.length === 0">Your cart is empty.</p>

v-else-ifとv-else

v-else-ifとv-elseで条件を連結します。これらはv-ifの直後に記述する必要があります。

<p v-if="score >= 90">Grade: A</p>
<p v-else-if="score >= 80">Grade: B</p>
<p v-else-if="score >= 70">Grade: C</p>
<p v-else>Grade: F</p>

v-show

v-showは要素を常にレンダリングしますが、CSSのdisplayプロパティを切り替えて表示・非表示を制御します。

<div v-show="isVisible">
  This div stays in the DOM,
  only display:none toggles.
</div>

v-ifとv-showの違い

主な違いは次のとおりです。

  • v-ifは要素をDOMから完全に追加・削除します
  • v-showは要素をDOMに残したまま、displayだけを切り替えます

頻繁に切り替えるものにはv-showを使います。条件がほとんど変わらない場合や、要素の生成コストが高い場合はv-ifを使います。

配列に対するv-for

v-forディレクティブは、配列を反復処理してリストをレンダリングします。

<ul>
  <li v-for="fruit in fruits">{{ fruit }}</li>
</ul>

<!-- data: fruits = ["Apple", "Banana", "Cherry"] -->

インデックス付きのv-for

v-forでは、各項目のインデックスも取得できます。

<ul>
  <li v-for="(item, index) in items">
    {{ index }}: {{ item }}
  </li>
</ul>

:keyの重要性

v-forを使うときは、必ず一意な:keyを指定してください。

  • Vueが各ノードの識別情報を追跡しやすくなります
  • 効率的で正確なDOM更新が可能になります
  • 項目の順序が変わる場合は、配列インデックスではなく、安定した一意のIDを使います
<li v-for="user in users" :key="user.id">
  {{ user.name }}
</li>

:keyが重要な理由

適切なkeyがないと、リストが変化したときにVueが誤った要素を再利用することがあります。

  • フォーム入力が誤った値を保持する可能性があります
  • アニメーションが乱れる可能性があります
  • 状態が誤った行に紐付く可能性があります

安定した一意のkeyを使うことで、これらのバグを防げます。

オブジェクトに対するv-for

v-forでは、オブジェクトのプロパティ値を反復処理できます。必要に応じてキーとインデックスも取得できます。

<li v-for="(value, key) in userProfile" :key="key">
  {{ key }}: {{ value }}
</li>

<!-- userProfile = { name: "Ada", age: 36 } -->

v-forと条件分岐の組み合わせ

リストを絞り込むときは、v-forと同じ要素にv-ifを置くのではなく、算出プロパティを使うことをおすすめします。

<!-- Filter in a computed, then loop -->
<li v-for="task in activeTasks" :key="task.id">
  {{ task.title }}
</li>

<!-- activeTasks is a computed that
     returns only unfinished tasks -->

理解度チェック

条件分岐とループについての理解度を確認しましょう。

まとめ:条件分岐とループ

リストと条件付きレンダリングについて学びました。

  • v-if / v-else-if / v-elseで条件付きレンダリングを行います
  • v-showは表示状態だけを切り替えます
  • v-forで配列やオブジェクトを反復処理します
  • 必ず一意な:keyを追加します
  • 算出プロパティでリストを絞り込みます

次は、属性とクラスのバインディングについて学びます。

よくある質問

「条件分岐とループ」レッスンは無料ですか?

はい。「条件分岐とループ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Vue Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Vue Academyコースには全3レッスンが含まれています。

「条件分岐とループ」で何を学びますか?

v-ifで条件付きレンダリングを行い、v-forでリストを表示します ブラウザで直接実行するハンズオンコードでVue Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Vue Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのVue Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「条件分岐とループ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このVue Academyレッスンでコードを書いて実行できますか?

はい。すべてのVue Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Interpolationとディレクティブ
  2. 条件分岐とループ
  3. 属性とクラスのバインディング
← Vue Academyに戻る