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

推薦する

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

MySQL 8.0.13 のインストールと設定方法を皆さんと共有したいと思います。お役に立てれば幸...

InnoDB エンジンの redo ファイルのメンテナンス方法

InnoDB REDO ログ ファイルのサイズと数を調整する場合は、次の手順に従います。 1. My...

優れたウェブワイヤーフレーム設計・制作ツール13選を紹介

プロジェクトの作業を開始するときは、ワイヤーフレームを使用してアイデアをスケッチすることが重要です。...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...

ネイティブJSで禁止すべきメソッドの記述

目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...

MySQL における varchar 型と char 型の違い

目次前述のVARCHAR型VARCHAR適用可能な状況CHAR型テストVARCHAR(5)とVARC...

ウェブ画像形式としてPNG、JPG、GIFを選択して使用する方法

では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...

ドキュメントの場所の比較

<br />2 年前に PPK が投稿した素晴らしいブログ記事では、contains()...

jQueryはシンプルなカルーセル効果を実装します

みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...

Vue.jsで実装されたカレンダープラグインの使い方を詳しく説明します

本日実装する機能は、以下の機能です。vue.js シミュレーションカレンダープラグインさて、もう無駄...

Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、fi...

Reactスロットの使い方

目次必要コアアイデアReactでスロットを実装する2つの方法必要コンポーネントを自分で書きました。コ...

クリック範囲を拡大する入力チェックボックスを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー< div style = &quo...

Nginx 設定場所のマッチング優先順位の簡単な分析

序文Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、...

MYSQL の binlog 最適化に関する考察の要約

質問質問 1: トランザクションをコミットするときに REDO ログをフラッシュすることによって発生...