ホームページ  >  に質問  >  本文

Vue 3: v-for は項目よりも多くのコンポーネントを表示します

<p>私は Vue を初めて使用するので、いくつかのことを試しています。私も Ionic を使用していますが、これも初めてです。独自のコンポーネント <trip.card> があり、API から返された各旅行インスタンスを表示したいと考えています。 </p> <pre class="brush:php;toolbar:false;"><テンプレート> <イオンページ> <イオンコンテンツ:fullscreen="true"> <イオンヘッダー崩壊="凝縮"> <イオンツールバー> <ion-title size="large">ウォーディ - 旅行</ion-title> </イオンツールバー> </イオンヘッダー> <trip-card v-for="旅行中の旅行" ref="旅行" :tripName="trip.name" /> </イオンコンテンツ> </イオンページ> </template></pre> <p>ドキュメントから理解したところによると、onMounted を使用してデータを設定できるようになりました。 </p> <pre class="brush:php;toolbar:false;"><スクリプト セットアップ lang="ts"> 輸入 { イオンコンテンツ、 イオンヘッダー、 イオンページ、 イオンタイトル、 イオンツールバー、 "@ionic/vue" から; "./TripCard.vue" から TripCard をインポートします。 「axios」から axios をインポートします。 import { ref, onMounted } from "vue"; const トリップ = ref([]); onMounted(() => { axios.get("http://localhost:8081/woadie/trips").then((response) => { 旅行値 = 応答データ; }); }); </script></pre> <p>現時点では、私の API は旅行インスタンスを含む配列を返します。ただし、<trip-card> コンポーネントは複数回表示されます。その理由は何でしょうか? </p><p>ドキュメントで次のコード スニペットを見つけました。 </p>


<pre class="brush:php;toolbar:false;"><スクリプトのセットアップ> 'vue' からインポート { ref, onMounted } const リスト = ref([ /* ... */ ]) const itemRefs = ref([]) onMounted(() => console.log(itemRefs.value)) </スクリプト> <テンプレート>
P粉245276769P粉245276769449日前509

全員に返信(1)返信します

  • P粉727531237

    P粉7275312372023-07-29 12:47:01

    ref="itemRefs" には、v-for によってレンダリングされたすべての <li> が含まれます。リスト要素の代わりに。

    これはテンプレート参照と呼ばれます:


    https://vuejs.org/guide/essentials/template-refs.html

    返事
    0
  • キャンセル返事