Vue ミックスインの使い方の詳しい説明

Vue ミックスインの使い方の詳しい説明

Vue ミックスインの使用

  • 機能: コンポーネントが導入された後、データやその他のメソッド、メソッドやその他の属性など、コンポーネント内のコンテンツは、親コンポーネントの対応するコンテンツとマージされます。これは、導入後に親コンポーネントのさまざまなプロパティ メソッドを拡張することと同じです。
  • データ データの平等アクセス原則: ミックスインを使用している現在のコンポーネントにデータまたはメソッドがある場合は、現在のコンポーネントのデータまたはメソッドが直接使用され、それ以外の場合はミックスイン内のデータとメソッドが直接継承されます。
  • : 共有変数を定義して、各コンポーネントで使用することができます。コンポーネントに導入された後、各変数は互いに独立しており、値の変更はコンポーネント内で互いに影響しません。
  • 注2 :Mixinは、コンポーネントが導入された後にコンポーネント内のオブジェクトやメソッドとマージされ、親コンポーネントのデータやメソッドなどを拡張することと同等であり、新しいコンポーネントを形成すると理解できます。

ミックスインでのデータアクセス

ミックスイン/index.js

エクスポートデフォルト{
  データ () {
    戻る {
      メッセージ: 「私は mixin のメッセージです」
    }
  },
  作成された(){
  },
  マウントされた(){}、
  メソッド: {
  }
}

ホーム.vue

  • ホームコンポーネントでのミックスインの使用
<テンプレート>
  <div>
    <div>home -- {{ msg }}</div> /* home によって変更されたメッセージ */
  </div>
</テンプレート>
<スクリプト>
「@/mixin/index.js」からミックスインをインポートします。
エクスポートデフォルト{
  名前: "ホーム",
  ミックスイン: [ミックスイン],
  データ() {
    戻る { };
  },
  作成された() {
    // mixin のデータを取得します console.log("home print", this.msg); //home は mixin の msg を出力します
    // ミックスインのデータを変更します。this.msg = "home によって変更されたメッセージ";
    console.log("home print", this.msg); // home は home によって変更されたメッセージを出力します
  },
  メソッド: {
  },
};
</スクリプト>
<style lang="scss" スコープ>
</スタイル>

2.vueについて

<テンプレート>
  <div>
    <div>about2 -- {{ msg }}</div> /* about2 によって変更されたメッセージ */
  </div>
</テンプレート>
<スクリプト>
「@/mixin/index.js」からミックスインをインポートします。
エクスポートデフォルト{
  名前: "About2",
  ミックスイン: [ミックスイン],
  コンポーネント: {},
  データ() {
    戻る {
      メッセージ: "ローカルメッセージ",
    };
  },
  作成された() {
    console.log("print about2", this.msg); // ローカルメッセージ
    this.msg = "about2 によって変更されたメッセージ";
    console.log("print about2", this.msg); // about2 によって変更されたメッセージ
    // 最後のページにはabout2の変更されたメッセージデータが表示されます},
  メソッド: {
  },
};
</スクリプト>
<style lang="scss" スコープ>
</スタイル>

ミックスインにおけるメソッドと計算された使用法

ミックスイン/index.js

エクスポートデフォルト{
  データ () {
    戻る {
      メッセージ: 「私は mixin のメッセージです」
    }
  },
  作成された() { },
  マウントされた(){}、
  計算: {
    ユーザー名() {
      「私は計算属性 UserName です」を返します。
    },
  },
  メソッド: {
    ヒントメッセージ() {
      console.log("minxin の tipMsg メソッド", this.msg);
    },
    ヒント情報 (情報) {
      console.log("minxin の tipInfo メソッド", info);
    }
  }
}

ホーム.vue

<テンプレート>
  <div>
    <div>ホーム --- msg-{{ msg }} UserName-{{ UserName }}</div>
    /* ホーム --- msg UserName-I は計算属性の UserName です */
  </div>
</テンプレート>
<スクリプト>
「@/mixin/index.js」からミックスインをインポートします。
エクスポートデフォルト{
  名前: "ホーム",
  ミックスイン: [ミックスイン],
  コンポーネント: {},
  データ() {
    戻る {};
  },
  作成された() {
    // mixin のデータを取得します console.log("home print", this.msg); //home は mixin の msg を出力します
    // ミックスインのデータを変更します。this.msg = "home によって変更されたメッセージ";
    console.log("home print", this.msg); // home は home によって変更されたメッセージを出力します
    // mixin の tipMsg メソッドを呼び出す this.tipMsg(); // minxin の tipMsg メソッドによって変更されたメッセージ
    this.tipInfo("私はホーム ルーキー情報です"); // minxin の tipInfo メソッド 私はホーム ルーキー情報です
  },
  メソッド: {},
};
</スクリプト>
<style lang="scss" スコープ>
</スタイル>

2.vueについて

<テンプレート>
  <div>
    <div>about2 -- {{ msg }} ユーザー名-{{ ユーザー名 }}</div>
    /* about2 -- about2 の変更されたメッセージ UserName-I は計算された属性 UserName です */
  </div>
</テンプレート>
<スクリプト>
「@/mixin/index.js」からミックスインをインポートします。
エクスポートデフォルト{
  名前: "About2",
  ミックスイン: [ミックスイン],
  コンポーネント: {},
  データ() {
    戻る {
      メッセージ: "ローカルメッセージ",
    };
  },
  作成された() {
    console.log("print about2", this.msg); // ローカルメッセージ
    this.msg = "about2 によって変更されたメッセージ";
    console.log("print about2", this.msg); // about2 によって変更されたメッセージ
    // 最後のページには about2 の変更されたメッセージが表示されています this data this.tipMsg(); // 最後の print-> I は about2 のローカル tipMsg メソッドです this.tipInfo(); // minxin の tipInfo メソッドは未定義です
  },
  メソッド: {
    ヒントメッセージ() {
      console.log("私はabout2のローカルtipMsgメソッドです");
    },
  },
};
</スクリプト>

要約する

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

以下もご興味があるかもしれません:
  • Vue の親コンポーネントと子コンポーネント間の通信の例 (props、$ref、$emit)
  • Vueでミックスインを使用する方法
  • Vue3 ミックスインの使い方
  • Vue での Mixin と extends の使用に関する詳細なチュートリアル
  • vue3 の defineProps で ref responsiveness を使用すると失敗する理由の詳細な説明
  • Vue コンポーネント共通メソッド抽出ミックスイン実装
  • Vue 親子コンポーネントのミックスイン共有に関する注意事項
  • Vue のコンポーネント化の詳細な説明 (ref、props、mixin、プラグイン)
  • Vue の ref、props、mixin 属性

<<:  HTML で #include ファイルを使用する例

>>:  nginx のロードバランシングとリバースプロキシの説明

推薦する

Vueパンくずコンポーネントのカプセル化方法

Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...

CSS を使用して半透明の背景と不透明なテキストを実現する例

この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...

Dockerコンテナの起動失敗を解決する方法

質問: コンピュータを再起動した後、docker の mysql コンテナを再起動できません。原因が...

7つの基本的なXHTMLコーディングルールの概要

1. すべてのタグには対応する終了タグが必要です以前の HTML では、<p> や &l...

jQuery で呼吸カルーセル効果を実現

この記事では、呼吸カルーセル効果を実現するためのjQueryの具体的なコードを参考までに共有します。...

MySQL 8.0.20 Window10無料インストール版設定とNavicat管理チュートリアルグラフィック詳細説明

1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...

一般的な Nginx のテクニックと例の概要

1. 複数サーバーの優先順位たとえば、各サーバー ブロックがポート 80 をリッスンする場合、www...

JavaScript で知らない Object.entries の使い方

目次序文1. 共通オブジェクトを反復処理するには for...of を使用します2. 通常のオブジェ...

jQueryはHTML要素の非表示と表示を実装します

商品を検索するときに、すべてのブランドまたは一部のブランドを表示するTaobaoの機能を真似してみま...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

JavaScript オブジェクト指向クラス継承ケースの説明

1. オブジェクト指向のクラス継承これまでの章では、JavaScript のオブジェクト モデルがプ...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

16進カラーコード(完全版)

赤とピンク、およびそれらの 16 進コード。 #990033 #CC6699 #FF6699 #FF...

MySQL ページング制限の実用的な最適化

序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...

HTML リスト タグ dl、ul、ol の使用例

コードをコピーコードは次のとおりです。 <!--リストタグ: <dl>: 階層リス...