Vueコンポーネントの動的コンポーネントの詳細な説明

Vueコンポーネントの動的コンポーネントの詳細な説明

配列が変更されると、対応するデータを動的にロードします

シナリオ: 異なるコンポーネント名をクリックすると、対応するコンポーネントがインターフェイスに表示されます。

ステップ1 : 必要なコンポーネントをインポートする

ステップ2 : タブをクリックして、対応するコンポーネント名を配列に追加します。

ステップ3 : 動的コンポーネントを使用し、:is属性をコンポーネント名にバインドする

<div v-for="(item, index) in componentData" :key="index">
  <コンポーネント:is="item.componentName"/>
</div>

: オブジェクトのプロパティ変更の監視、詳細な監視

<!-- DynamicComponent.vue -->
<テンプレート>
  <セクション>
    <div v-for="(item, index) in componentData" :key="index">
      <components :is='item.componentName' :params="item.content" />
    </div>
  </セクション>
</テンプレート>
<スクリプト>
'./pageComponents/PageOne' から PageOne をインポートします。
'./pageComponents/PageTwo' から PageTwo をインポートします。
'./pageComponents/PageThree' から PageThree をインポートします。
エクスポートデフォルト{
  名前: 'DynamicComponent',
  コンポーネント:
    ページワン、
    ページ2、
    ページ3
  },
  データ () {
    戻る {
      コンポーネントデータ: [
        {
          コンポーネント名: 'PageOne',
          コンテンツ: {
            タイトル: 'タイトル1'
          }
        },
        {
          コンポーネント名: 'PageTwo',
          コンテンツ: {
            タイトル: 'タイトル2'
          }
        }
      ]
    }
  }
}
</スクリプト>
<!-- ページ 1 -->
<テンプレート>
  <セクション>
    {{コンテンツ}}
  </セクション>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'PageOne'、
  小道具: {
    パラメータ: {
      タイプ: オブジェクト、
      デフォルト: function(){
        戻る {}
      }
    }
  },
  データ () {
    戻る {
      コンテンツ: this.params.title
    }
  },
  時計:
    パラメータ: {
      ハンドラ(newVal, oldVal){
        this.content = newVal.title
      },
      深い:本当、
      即時: 真
    }
  }
}
</スクリプト>
<!-- ページ2 -->
<テンプレート>
  <セクション>
    {{コンテンツ}}
  </セクション>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'PageTwo',
  小道具: {
    パラメータ: {
      タイプ: オブジェクト、
      デフォルト: function(){
        戻る {}
      }
    }
  },
  データ () {
    戻る {
      コンテンツ: this.params.title
    }
  },
  時計:
    パラメータ: {
      ハンドラ(newVal, oldVal){
        this.content = newVal.title
      },
      深い:本当、
      即時: 真
    }
  }
}
</スクリプト>

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

配列が変更されると、対応するデータを動的にロードします

シナリオ: 異なるコンポーネント名をクリックすると、対応するコンポーネントがインターフェイスに表示されます。

ステップ1 : 必要なコンポーネントをインポートする

ステップ2 : タブをクリックして、対応するコンポーネント名を配列に追加します。

ステップ3 : 動的コンポーネントを使用し、:is属性をコンポーネント名にバインドする

<div v-for="(item, index) in componentData" :key="index">
  <コンポーネント:is="item.componentName"/>
</div>

: オブジェクトのプロパティ変更の監視、詳細な監視

<!-- DynamicComponent.vue -->
<テンプレート>
  <セクション>
    <div v-for="(item, index) in componentData" :key="index">
      <components :is='item.componentName' :params="item.content" />
    </div>
  </セクション>
</テンプレート>
<スクリプト>
'./pageComponents/PageOne' から PageOne をインポートします。
'./pageComponents/PageTwo' から PageTwo をインポートします。
'./pageComponents/PageThree' から PageThree をインポートします。
エクスポートデフォルト{
  名前: 'DynamicComponent',
  コンポーネント:
    ページワン、
    ページ2、
    ページ3
  },
  データ () {
    戻る {
      コンポーネントデータ: [
        {
          コンポーネント名: 'PageOne',
          コンテンツ: {
            タイトル: 'タイトル1'
          }
        },
        {
          コンポーネント名: 'PageTwo',
          コンテンツ: {
            タイトル: 'タイトル2'
          }
        }
      ]
    }
  }
}
</スクリプト>
<!-- ページ 1 -->
<テンプレート>
  <セクション>
    {{コンテンツ}}
  </セクション>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'PageOne'、
  小道具: {
    パラメータ: {
      タイプ: オブジェクト、
      デフォルト: function(){
        戻る {}
      }
    }
  },
  データ () {
    戻る {
      コンテンツ: this.params.title
    }
  },
  時計:
    パラメータ: {
      ハンドラ(newVal, oldVal){
        this.content = newVal.title
      },
      深い:本当、
      即時: 真
    }
  }
}
</スクリプト>
<!-- ページ2 -->
<テンプレート>
  <セクション>
    {{コンテンツ}}
  </セクション>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'PageTwo',
  小道具: {
    パラメータ: {
      タイプ: オブジェクト、
      デフォルト: function(){
        戻る {}
      }
    }
  },
  データ () {
    戻る {
      コンテンツ: this.params.title
    }
  },
  時計:
    パラメータ: {
      ハンドラ(newVal, oldVal){
        this.content = newVal.title
      },
      深い:本当、
      即時: 真
    }
  }
}
</スクリプト>

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue 組み込みコンポーネント - is 属性を通じてコン​​ポーネント操作を動的にレンダリングします
  • Vue.component プロパティの説明
  • VueとVueComponentの関係の詳細な説明
  • vue 動的コンポーネント
  • Vueのコンポーネントタグレンダリング問題を解決する

<<:  MySQL EXPLAIN出力列の詳細な説明

>>:  CSSリンクと@importの違いの詳細な説明

推薦する

Rancher で Kubernetes 用の標準化された VMware イメージを構築する方法

Kubernetes を学習するときは、Kubernetes 環境で練習する必要があります。ただし、...

MySql データベースにおける単一テーブル クエリと複数テーブル結合クエリの効率の比較

この間、プロジェクトに取り組んでいるときに、データ間の接続が非常に複雑なモジュールに遭遇しました。テ...

Linux インストール MySQL5.6.24 使用手順

Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...

Firefox で Flash を再生するためのオブジェクトとパラメータの書き方

コードをコピーコードは次のとおりです。 <object classid="clsid...

MySQL 8.0 アトミック DDL 構文の詳細な説明

目次01 アトミックDDLの紹介02 一部のDDL操作の実行動作の変更03 DDL 操作のログを表示...

ウェブページを作成するために最もよく使用されるHTMLタグ

1. よく使われるHTMLタグの最適化HTML は Web 編集者にとって基本的なスキルであるべきで...

Vue ページレンダリングにおけるキーの適用例チュートリアル

導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するため...

Linux のスケジュールタスク Crontab コマンドの使用に関する詳細な説明と概要

crontab コマンドは、Unix および Linux で定期的な実行命令を設定するために使用され...

MySQLでホワイトリストアクセスを設定する方法

MySQLでホワイトリストアクセスを設定する手順1. ログイン mysql -uroot -pmys...

Dockerにlogstashをインストールする詳細な手順

docker-compose.yml を編集し、次のコンテンツを追加します。 バージョン: '...

MySQL 学習ノート: 完全な SELECT ステートメントの使用例と詳細な説明

この記事では、MySQL 学習ノートの select ステートメントの完全な使用方法を例を使用して説...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

ウェブサイトのフッター沈下現象に対する3つの解決策を詳しく解説

背景多くのウェブサイトのデザインは、一般的にコンテンツ+フッターの2つの部分で構成されています。コン...

テーブル切り替えのための JavaScript プラグインのカプセル化

この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...