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

推薦する

js Promise同時制御メソッド

目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...

ロンボク実装 JSR-269

序文導入Lombok は、Google Guava と同様に便利なツールであり、強くお勧めします。す...

Vueカスタムテーブル列実装プロセス記録

目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...

両端揃えレイアウトを実現する CSS 列のサンプルコード

1. 堂々巡りいろいろ試行錯誤した結果、均等割り付けレイアウトを実現する最も簡単な方法は CSS ...

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...

Webデザイン講座(4):素材と表現について

<br />前回のWebデザインチュートリアル:Webデザインチュートリアル(3):デザ...

Nginx プロキシ使用時にヘッダーに「_」が含まれることで情報が失われる問題の解決方法

序文ゲートウェイプロジェクトを開発する場合、署名 sign_key 情報はリクエスト時にリクエスト ...

負荷分散と動的および静的分離操作を実現するDocker NginxコンテナとTomcatコンテナ

Tomcat8 イメージをダウンロード [root@localhost ~]# docker sea...

JavaScript キャンバスで 9 マスのグリッドカットの効果を実現

この記事では、9グリッドカット効果を実現するためのキャンバスの具体的なコードを紹介します。具体的な内...

Typescriptを使用してWeChatミニプログラムを開発するための詳細な手順

Typescript の利点については詳しく説明する必要はありません。ご興味があれば、(https:...

MySQL 最適化のケーススタディ

1. 背景Youzan の各 OLTP データベース インスタンスには、実行時間が特定のしきい値を超...

Win10 への MySQL 5.7 のインストール MSI 版のチュートリアル(画像とテキスト付き)

主にインストール後に my.ini ファイルを確認するために、msi 形式でインストールしました。フ...

Springboot および Vue プロジェクトの Docker デプロイメントの実装手順

目次A. SpringbootプロジェクトのDockerデプロイメント1. Springbootプロ...

IE6のmin-widthとmin-heightと互換性を持たせる簡単な方法

ウェブサイトがワイドスクリーンの場合、ブラウザ ウィンドウを左右にドラッグすると、ウェブサイトの幅が...

Linuxダイナミックリンクライブラリの使用

通常のプログラムと比較すると、ダイナミック リンク ライブラリにはメイン関数がなく、一連の関数の実装...