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の違いの詳細な説明

推薦する

HTML で div を非表示にする テーブルを非表示にする TABLE または DIV コンテンツの CSS スタイル

今夜、数日間悩まされていた問題を解決しました。本当に解決したかどうかはわかりませんが、解決されている...

Webサービスのリモートデバッグとタイムアウト動作原理の分析

Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...

ウェブサイトを構築するときは、UTF-8 または GB2312 エンコードを使用する必要がありますか?

外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...

Linux コマンドラインターミナルで画面を分割するための 2 つのツール

ターミナル分割画面ツールは2つあります: screen と tmux 1. 画面分割を使用する(上下...

CSSのoutline-offsetプロパティを使用してプラス記号を実装する

次のような初期コードがあると仮定します。 <!DOCTYPE html> <htm...

Linux で同じバージョンの R を使用して Seurat2 と Seurat3 を同時にインストールするチュートリアル

Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その...

エラー 1862 (HY000): パスワードの有効期限が切れています。ログインするには、..... を使用してパスワードを変更する必要があります。

エラーメッセージ:エラー 1862 (HY000): パスワードの有効期限が切れています。ログインす...

LinuxシステムでFuserコマンドを使用する方法

Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...

Centos7でのSambaサーバー構成(実戦)

サンバの概要Samba は、Linux および UNIX システム上で SMB プロトコルを実装する...

Vue3でカルーセルコンポーネントをカプセル化する方法

目的カルーセルコンポーネントをカプセル化して直接使用します。具体的な内容は以下のとおりです。一般的な...

MySQL 単一テーブルクエリの例の詳細な説明

1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...

deepin 2014 システムに MySQL データベースをインストールする方法

Deepin 2014 のダウンロードとインストールDeepin 2014 のダウンロードとインスト...

Vue が Bibibili のホームページを模倣する際の問題

エンジニアリング構造プロジェクトは2つの部分に分かれています。bilibili-apiはAPIインタ...

Windows サービス 2016 Datacenter\Stand\Embedded アクティベーション方法 (2021)

管理者権限でcmdを実行する slmgr /ipk CB7KF-BWN84-R7R2Y-793K2-...

4 つの主要な SQL ランキング関数 ROW_NUMBER、RANK、DENSE_RANK、NTILE の使用方法の紹介

1. ROW_NUMBER()定義: ROW_NUMBER() 関数は、select によってクエリ...