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はコンテナにポートを動的に公開します

推薦する

MySQL 8.0.21 のインストール手順と問題解決

公式サイトをダウンロードまず公式ウェブサイトにアクセスしてMySQLをダウンロードしてくださいリンク...

HTML における Div と table の違い (あらゆる側面から詳細に説明)

1: 速度と読み込み方法の違いdivとtableの違いは速度ではなく、読み込み方法です。速度はネット...

CSSの記述形式、モバイルページの基本構造の詳細な説明

1. CSSの記述形式1. インラインスタイルCSSコードを開始タグに直接記述することができます&l...

ウェブページの読み込み進捗状況バーの詳細な説明(推奨)

(Web ページの読み込み中に、コンテンツが多すぎて読み込みと待機が続くことがあります。このとき、...

Windows での MySQL 5.7.10 のインストールと設定のチュートリアル

MySQL は、ユーザーごとに 2 つの異なるバージョンを提供します。 MySQL コミュニティ サ...

背景画像のみを180度回転させるCSS3実装例

1. 心の旅最近コックピットを書いていたときに、背景画像を単純に特定の角度に回転させるという問題につ...

webpack -v エラー解決

背景webpackのバージョンを確認したいのですが、webpack -vを実行するとエラーが報告され...

Linuxで$を#に変更する方法

このシステムでは、# 記号は root ユーザーを表し、$ 記号は通常のユーザーを表します。では、ど...

Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します

docker hub から es イメージ (バージョン 6.4.2) をダウンロードしました。詳細...

Vueのミックスインと継承について詳しく説明します

目次序文ミキシンMixin ノート (重複名)ローカルミックスイングローバル ミックスイン継承するミ...

vue3.2 で追加された defineCustomElement の基本原理の詳細な説明

目次Webコンポーネントカスタム要素概要HTMLTemplateElement コンテンツ テンプレ...

CSS ボーダーは四隅の実装コードを追加します

1.html <div class="ログインボディ"> <...

docker-compose.yml ファイル内の一般的なテンプレート コマンドの詳細な説明

注意: docker-compose.yml ファイルを書き込むときは、すべてのコロン (:) とダ...

アップロード画像コントロールを実現するネイティブ js

この記事の例では、アップロード画像コントロールを実装するためのjsの具体的なコードを参考までに共有し...

HTML で JavaScript を使用する

<script> タグHTML5では、スクリプトには次の属性があります: async、d...