Vue ミックスインの使用方法とオプションのマージの詳細な説明

Vue ミックスインの使用方法とオプションのマージの詳細な説明

1. コンポーネントでの使用

Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。ミックスイン オブジェクトには任意のコンポーネント オプションを含めることができます。コンポーネントがミックスインを使用する場合、ミックスインのすべてのオプションがコンポーネント自体のオプションに「混合」されます。

<テンプレート>
  <div class="event_style">
    <h2>基本</h2>
    <div class="inner_children">
      <span>{{ メッセージ }}</span>
    </div>
  </div>
</テンプレート>
<スクリプト>
var myMixin = {
  データ() {
    戻る {
      メッセージ: ""、
    };
  },
  作成: 関数 () {
    console.log("作成:ミックスインを追加");
    this.message = "作成済み: ミックスインを追加";
    hello() を返します。
  },
  メソッド: {
    こんにちは: 関数() {
      console.log("mixin からこんにちは!");
    },
  },
};
// ミックスインオブジェクトを使用するコンポーネントを定義する export default {
  名前: "mixin-basic",
  ミックスイン: [myMixin],
};
</スクリプト>

2. オプションのマージ

コンポーネントとミックスインに同じ名前のオプションがある場合、それらのオプションは適切な方法で「マージ」されます。

たとえば、データ オブジェクトは内部的に再帰的にマージされ、競合が発生した場合はコンポーネント データが優先されます。

<テンプレート>
  <div class="event_style">
    <h2>オプションのマージ</h2>
    <div class="inner_children">
      <span>{{ メッセージ }}</span>
      <span>{{ メッセージ1 }}</span>
    </div>
  </div>
</テンプレート>
<スクリプト>
var myMixin = {
  データ() {
    戻る {
      メッセージ: "mixin:mixin",
      メッセージ1: "mixin:mixin-1",
    };
  },
  作成: 関数 () {
    hello() を返します。
  },
  メソッド: {
    こんにちは: 関数() {
      console.log("mixin:mixin からこんにちは!");
    },
  },
};
// ミックスインオブジェクトを使用するコンポーネントを定義する export default {
  名前: "mixin-merge",
  ミックスイン: [myMixin],
  データ() {
    戻る {
      メッセージ: "コンポーネント: hello",
    };
  },
  作成: 関数 () {
    hello() を返します。
  },
  メソッド: {
    こんにちは: 関数() {
      console.log("コンポーネント: hello world!");
    },
  },
};
</スクリプト>
<スタイルスコープ>
.イベントスタイル{
  左パディング: 50px;
  右パディング: 50px;
}
.inner_children{
  ディスプレイ: フレックス;
  flex-direction: 列;
  高さ: 150px;
  境界線: 1px 実線 #333;
  パディング: 6px;
}
.inner_children スパン {
  フォントサイズ: 20px;
}
</スタイル>

ページレンダリング効果

上図からわかるように、ミックスインされたデータやメソッドがコンポーネント定義と矛盾する場合は、コンポーネントが優先されます。コンポーネントに定義されていない場合は、ミックスインされた定義の効果を示すためにマージされます。

要約する

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

以下もご興味があるかもしれません:
  • Vue3 Composition API が Vue Mixins に取って代わる仕組みについて簡単に説明します。
  • Vue ミックスインの詳しい説明
  • Vueでミックスインを使用する方法
  • Web プロジェクト開発 VUE の混合と継承の原則
  • Vue のミックスインの使用方法の詳細な説明
  • Vue3 ミックスインの使い方

<<:  HTML 言語百科事典

>>:  Dockerはコンテナにポートを動的に公開します

推薦する

カスタムスクロールバー効果を実現するJavaScript

実際のプロジェクトでは、上下のスクロール バーと左右のスクロール バーは DIV 内にないため、右の...

CSS を使用して 3 列レイアウトを実装するサンプル コード。中央の列は適応型で、テキスト サイズに応じて幅が変わります。

Baiduのインタビューで遭遇する質問は、次のレイアウト効果を達成する必要がある。 中央の紫色の列...

MySQLトランザクション処理の使用方法とサンプルコードの詳細な説明

MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...

Vue3を使用してjsで呼び出せるコンポーネントを実装する

目次序文1. 従来のVueコンポーネント1. メインコンポーネントコード: 2. 使用方法3. 成果...

HTML テーブル タグ チュートリアル (47): ネストされたテーブル

<br />このページでは、テーブルをネストすることで組版を実現しています。つまり、1 ...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

Vueライフサイクルの詳細な説明

目次ライフサイクルを理解する理由ライフサイクルとはライフサイクルフック関数作成され、マウントされたフ...

crontab スケジュールされたタスクが実行されない理由の分析と解決

序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...

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

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

Linux 上の Tomcat で MySQL にデータを挿入するときに中国語の文字化けが発生する問題を解決する

1. 問題Windows 上の Eclipse を使用して開発されたプロジェクトは Windows ...

Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)

序文Docker イメージは Dockerfile といくつかの必要な依存関係で構成され、Docke...

Linux で MySQL パスワードを忘れた場合の解決策

問題は次のとおりです。mysql -uroot -p コマンドを入力しましたが、パスワードを忘れてし...

MySQL 8.0 のインデックス スキップ スキャン

序文MySQL 8.0.13 では、インデックス スキップ スキャン (インデックス ジャンプ スキ...

Windows 10 システムで nginx ファイル サーバーを構成するためのグラフィック チュートリアル

Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...

コネクタコンポーネントから Tomcat のスレッドモデルを見る - BIO モード (推奨)

Tomcat の上位バージョンでは、デフォルト モードは NIO モードを使用することになります。...