require/import キーワードを使用して v-for ループでローカル画像をインポートするいくつかの方法

require/import キーワードを使用して v-for ループでローカル画像をインポートするいくつかの方法

問題の説明

プロジェクトを行う際、ページ上に画像を表示する必要があることがよくあります。一般的には、次のような方法があります。

方法 1 (バックエンドが画像 URL を返す)

この方法では、バックエンドが画像の URL アドレスを返し、img タグの src 属性を imgUrl に直接バインドします。次のコード:

<div class="item" v-for="(item, index) in apiArr" :key="index">
    <!-- apiArr はバックエンドから返されるデータで、それぞれに画像の URL アドレスを格納する imgUrl 属性があります -->
    <img :src="item.imgUrl" alt="">
</div>

方法 2 (フロントエンドで require を使用する)

2 番目の方法は、フロントエンドに画像ファイルを保存し、バックエンドは画像の名前のみを返す (または画像データを返さない) ことです。コード例は次のとおりです。

コードが添付されています

<テンプレート>
  <div class="wrap">
    <div class="item" v-for="(item, index) in apiArr" :key="index">
      <div class="imgWrap">
        <!-- require は画像ファイルモジュールを導入します -->
        <img :src="require(`@/assets/img/${item.imgTitle}.png`)" alt="" />
        <!-- 最終的にはこのようになり、正常に表示できるようになります <img src="@/assets/img/first.png" alt=""> -->
      </div>
      <div class="infoWrap">
        <div><span class="bloder">ランク:</span> {{ item.title }}</div>
        <div><span class="bloder">スコア:</span> {{ item.score }}</div>
      </div>
    </div>
    
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ() {
    戻る {
      apiArr: [],
    };
  },
  マウント() {
    // apiArr はリクエストを送信したときにバックエンドから返されるデータであり、その中の imgTitle プロパティには画像の名前が格納されていると仮定します // require キーワードを通じてこれを導入すると、指定されたパスの下のファイルで対応する画像ファイルを自動的に検索してロードします this.apiArr = [
      {
        タイトル: 「チャンピオン」
        スコア: "98.8",
        imgTitle: "最初",
      },
      {
        タイトル: 「準優勝」、
        スコア: "97.9",
        imgTitle: "2番目",
      },
      {
        タイトル:「第3位」
        スコア: "96.2",
        imgTitle: 「3番目」、
      },
    ];
  },
};
</スクリプト>

効果図は以下のとおりです

プロジェクトファイル構造図

方法3(フロントエンドでインポートを使用する)

コードが添付されています

<テンプレート>
  <div class="wrap">
    <div class="item" v-for="(item, index) in apiArr" :key="index">
      <div class="imgWrap">
        <img :src="item.imgTitle" alt="" />
      </div>
      <div class="infoWrap">
        <div><span class="bloder">ランク:</span> {{ item.title }}</div>
        <div><span class="bloder">スコア:</span> {{ item.score }}</div>
      </div>
    </div>
  </div>
</テンプレート>

<スクリプト>
// インポート import first from "@/assets/img/first.png";
「@/assets/img/second.png」から second をインポートします。
'@/assets/img/third.png' から third をインポートします。
エクスポートデフォルト{
  データ() {
    戻る {
      apiArr: [
        {
          タイトル: 「チャンピオン」
          スコア: "98.8",
          imgTitle: first, // インポートした画像を使用する},
        {
          タイトル: 「準優勝」、
          スコア: "97.9",
          imgTitle: second, // インポートした画像を使用する},
        {
          タイトル:「第3位」
          スコア: "96.2",
          imgTitle: third, // インポートした画像を使用する},
      ]、
    };
  },
};
</スクリプト>

レンダリングとプロジェクト ファイルの構造図は上記と同じなので、ここでは詳細には触れません。

要約する

画像をインポートするには、ES6 の import メソッドまたは commonjs の require メソッドを使用できますが、個人的には、より柔軟性が高い require メソッドを使用することをお勧めします。

これで、v-for ループで require/import キーワードを使用してローカルイメージを導入する方法についての説明は終わりです。ローカルイメージの導入に関するより関連性の高い v-for コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js で画像パスを導入するいくつかの方法の詳細な説明
  • vueシリーズのrequireJsにvue-routerを導入する方法
  • Vueの画像はrequireを使って導入する必要がある

<<:  MySQL 8.0.20 インストール チュートリアル (画像とテキスト付き) (Windows 64 ビット)

>>:  Win10 の組み込み Linux システムを使用して Spring Boot プロジェクトを開始する方法

推薦する

JS WebSocket 切断理由とハートビートの仕組みの詳しい説明

1. 切断理由WebSocket が切断される理由は多数あります。WebSocket が切断されたと...

Linux 環境変数とプロセス アドレス空間の概要

目次Linux 環境変数とプロセスアドレス空間コードを通じて環境変数を取得するプロセスアドレス空間な...

Vue を使用して 2 つのデータ セットの違いを比較する視覚化コンポーネントの詳細な説明

目次必要:要点:これまでの要点に従って、コンポーネントのプロパティを確立できます。コンポーネントの基...

史上最も便利な Zookeeper サーバーの構築方法 (推奨)

ZooKeeperとはZooKeeper は、分散アプリケーションに効率的で可用性の高い分散調整サ...

CSS の clip-path プロパティの使用方法の詳細な説明

クリップパスの使用ポリゴン値は複数の座標点で構成されます。最初の値は x 方向、2 番目の値は y ...

MySQL開発標準と使用スキルの概要

1. 命名規則1. データベース名、テーブル名、フィールド名には小文字を使用し、アンダースコアで区切...

ブラウザが登録できるイベントの概要

HTML イベント リスト一般イベント: onClick HTML: マウスクリックイベント。主にオ...

jQueryでフルスクリーンスクロール効果を実現

この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...

ウェブページの広告デザインにおけるウェブデザインの寸法とルール

1. 800*600 未満の場合、Web ページの幅が 778 以内であれば、水平スクロール バーは...

CSS3 を使用して入力複数選択ボックスのスタイルをカスタマイズする例

原則: まず入力要素を非表示にし、次に CSS を使用してラベル要素のスタイルを設定します (他の要...

pdf.js を使用して Vue で PDF ファイルをプレビューする方法

ページ上で PDF をプレビューすると、一部のファイルは印刷またはダウンロードできません。現時点では...

HTML チュートリアル、HTML デフォルト スタイル

html 、アドレス、引用、本文、 dd 、 div 、 dl 、 dt 、フィールドセット、フォ...

Vue SPA ファースト スクリーン最適化ソリューション

目次序文最適化ソ連オンデマンドインポート1. ルーティングファイルでコンポーネントをオンデマンドでイ...

JavaScript コンストラクタとプロトタイプの関係

目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...