Vue.js のミックスインの詳細な説明

Vue.js のミックスインの詳細な説明

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

1. Mixinの基本的な使い方

これで、クリックすると数字が増加するプログラムができました。これが完成したら、データが変更されるたびに、コンソールに「データが変更されました」というプロンプトが表示されるようになることを期待します。

コード実装プロセス:

<div id="アプリ">
    <p>数値:{{数値}}</p>
    <P><button @click="add">数量を追加</button></P>
</div>


<スクリプト>
    var ログを追加 = {
    	// 更新フックをvueインスタンスにミックスする updated() {
            console.log("データが " + this.num + " に変更されます。");
        }
    }

    var アプリ = 新しい Vue({
        el: '#app',
        データ: {
            番号: 1
        },
        メソッド: {
            追加: 関数 () {
                this.num++;
            }
        },
        ミックスイン: [addLog], //mixin})
</スクリプト>     

ここに写真の説明を記入してください

ボタンをクリックすると、混合 addLog 内の更新されたメソッドがトリガーされます。

2. ミックスインの呼び出し順序

  • 実行順序としては、混入的先執行,然后構造器里的再執行
  • data内の属性とmethods内のメソッドは上書きされます構造器覆蓋混入的屬性和方法
  • ライフサイクルフックは2回呼び出され、上書きされません先調用混入鉤子再調用構造器鉤子)。

上記のコードのコンストラクターに更新されたフック関数も追加しました。

<div id="アプリ">
    <p>数値:{{数値}}</p>
    <P><button @click="add">数量を追加</button></P>
</div>


<スクリプト>
    var ログを追加 = {
        更新: 関数() {
            console.log("データが " + this.num + " に変更されます。");
        }
    }

    var アプリ = 新しい Vue({
        el: '#app',
        データ: {
            番号: 1
        },
        メソッド: {
            追加: 関数 () {
                this.num++;
            }
        },
        更新: 関数 () {
            console.log("コンストラクター内のメソッドが更新されました。")
        },
        ミックスイン: [addLog], //mixin})
</スクリプト>     

ここに写真の説明を記入してください

3. グローバルミックスイン方式

グローバル ミックスインは、ミックスインおよびコンストラクター メソッドの前に実行されます。

<div id="アプリ">
    <p>数値:{{数値}}</p>
    <P><button @click="add">数量を追加</button></P>
</div>


<スクリプト>
    Vue.mixin({
        更新: 関数 () {
            console.log('私はグローバルに混在しています');
        }
    })

    var ログを追加 = {
        更新: 関数() {
            console.log("データが " + this.num + " に変更されます。");
        }
    }

    var アプリ = 新しい Vue({
        el: '#app',
        データ: {
            番号: 1
        },
        メソッド: {
            追加: 関数 () {
                this.num++;
            }
        },
        更新: 関数 () {
            console.log("コンストラクター内のメソッドが更新されました。")
        },
        ミックスイン: [addLog], //mixin})
</スクリプト>     

ここに写真の説明を記入してください

順次要約:全局混入> 局部混入> 構造器

2つのオブジェクトキー名が競合する場合は、コンポーネントオブジェクトのキーと値のペアを取得します。

ミックスインとコンポーネント オブジェクトの両方にテスト メソッド (同じ名前) がある場合、最終的な値はコンポーネント オブジェクトのキーと値のペアになります。

  <div id="アプリ">
      <p>数値:{{数値}}</p>
      <P>
          <button @click="add">数量を追加</button>
      </P>
  </div>

  <スクリプト>
      var ログを追加 = {
          更新: 関数 () {
              console.log("データが " + this.num + " に変更されます。");
              これをテストします。
          },
          メソッド: {
              テスト: 関数 () {
                  console.log('ミックスインでのテスト')
              }
          }
      }

      var アプリ = 新しい Vue({
          el: '#app',
          データ: {
              番号: 1
          },
          メソッド: {
              追加: 関数 () {
                  this.num++;
              },
              テスト:関数(){
                  console.log('コンポーネントオブジェクト内のテスト')
              }
          },
          ミックスイン: [addLog], //mixin})
</スクリプト>

ここに写真の説明を記入してください

Vue.js ミックスインに関する記事はこれで終わりです。Vue.js ミックスインについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js の Mixin を詳しく見る
  • Vue.js Mixinの詳しい説明
  • Vue.js で Mixin を使用する方法

<<:  Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

>>:  ZabbixはSNMPに基づいてLinuxホストを監視します

推薦する

Mysql マスタースレーブ同期構成の実践の詳細な説明

1. はじめに以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。この記事を読...

MySQLデータベースのトランザクションとロックの詳細な分析

目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....

MySQL パーティション テーブルに関するパフォーマンス バグ

目次2. pt-pmapを使用したスタック分析3. このコラムのボトルネックポイントの分析4. パー...

MySQL エンコーディング utf8 および utf8mb4 utf8mb4_unicode_ci および utf8mb4_general_ci

参考: MySQL 文字セットの概要utf8mb4 は MySQL 8.0 のデフォルトの文字セット...

Nginxリバースプロキシ設定でプレフィックスが削除される

nginx をリバース プロキシとして使用する場合、リクエストをそのまま次のサービスに転送するだけで...

Linux で pip 操作中にタイムアウトが発生する問題を解決する方法

Linuxインスタンスでpipを使用する際のタイムアウト問題を解決する方法pip は最も人気のある ...

HTML ドロップダウン ボックスの SELECT オプションを変更する複数の方法

フォームが送信されると、返された HTML ページが再レンダリングされ、SELECT コントロールの...

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...

フィボナッチ数列のJavaScript出力を実装する方法

目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...

Vueのインストール方法の紹介

目次1. グローバルに登録されたコンポーネント2. グローバルカスタム指示vue 、新しいプラグイン...

HTML 選択タグにリンクを追加する 3 つの方法

最初のもの:コードをコピーコードは次のとおりです。 <html> <ヘッド>...

Vue3 シングルファイルコンポーネントのスタイル機能の詳細な説明

目次スタイルスコープスタイルモジュール状態駆動型動的CSS要約するスタイルスコープ注意事項:スタイル...

ウェブデザインにおけるポップアップウィンドウとフローティングレイヤーのデザイン

従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

【HTML要素】タグテキストの詳細説明

1. 基本的なテキスト要素を使用してコンテンツをマークアップするまず表示効果を見てみましょう:対応す...