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ホストを監視します

推薦する

sbinディレクトリを生成せずにNginxをインストールするソリューション

エラーの説明: 1. Linux (CentOS 7 64) システムに Nginx (1.18.0...

MySQL マルチテーブル結合クエリ例の説明

実際のプロジェクトでは、複数のテーブル間に関係が存在します。 1 つのテーブル内のすべてのデータを取...

docker エントリポイントファイルの詳細な説明

Dockerfile を作成するときは、コンテナが起動する前に初期化構成やカスタム構成を実行するため...

CSS3 3Dクールキューブ変形アニメーションの実装

私はコーディングが大好きです。コーディングすると幸せになります!みなさんこんにちは、Counterで...

CSS3 は 3D キューブの読み込み効果を作成します

簡単な説明これは CSS3 のクールな 3D キューブのプリロード効果です。この特殊効果は、シンプル...

読み取り専用と無効の微妙な違いの詳細な説明

「読み取り専用」と「無効」はどちらも、ユーザーがフォーム フィールドの内容を変更できないようにします...

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...

n 個のコンテナ要素による無限スクロールの実装コード

シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...

MySQL マスタースレーブレプリケーションの役割と動作原理の詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...

ブラウザは関連するHTTPヘッダーをキャッシュし、HTTPリクエストの数を最小限に抑えます。

最近、Yahoo の 34 の黄金律を読み、ウェブサイトのパフォーマンスを最適化する方法を学びました...

React の調整アルゴリズム Diffing アルゴリズム戦略の詳細な説明

目次アルゴリズム戦略単一ノードの差分配列ノードの差分キー値の使用要件アルゴリズム戦略React の調...

JSの基本概念の詳細な紹介

目次1. JSの特徴1.1 マルチパラダイム1.2 説明1.3 シングルスレッド1.4 ノンブロッキ...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...

MySQL で特定の日、月、または年のデータをクエリするためのコードの詳細な説明

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...