Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。ミックスイン オブジェクトには任意のコンポーネント オプションを含めることができます。コンポーネントがミックスインを使用する場合、ミックスインのすべてのオプションがコンポーネント自体のオプションに「混合」されます。 つまり、ミックスインがコンポーネントに導入されると、データ、メソッド、その他の属性など、コンポーネント内のコンテンツが親コンポーネントの対応するコンテンツとマージされます。これは、導入後、親コンポーネントのすべてのプロパティ メソッドが拡張されたことを意味します。 たとえば、2 つの異なるコンポーネントで sayHi メソッドを呼び出すには、定義を繰り返し行う必要があります。メソッドが複雑な場合は、コードが冗長になりますが、ミックスインを使用すると比較的簡単になります。 まず、mixin.js ファイルで mixin オブジェクトを定義します。 ミックスイン = { データ () { 戻る { ユーザー名: 'mixin' } }, 作成された(){ this.sayHello() }, メソッド: { こんにちは(){ console.log(`${this.userName}, welcome`) } } } デフォルトのミックスインをエクスポートする 次に、2 つのコンポーネントを定義し、それぞれコンポーネントに導入します。 <スクリプト> '../mixin' から mixin をインポートします エクスポートデフォルト{ ミックスイン: [ミックスイン] } </スクリプト> 両方のコンポーネントの印刷結果は次のようになります。 2 つのコンポーネント データで userName が定義されている場合、印刷された結果は各コンポーネントの userName を参照します。 2 つのコンポーネントのメソッドで同じメソッドが繰り返し定義されている場合、ミックスイン内のメソッドは上書きされます。 コンポーネントの 1 つに対して独自の userName メソッドと sayHi メソッドを定義します。 <スクリプト> '../mixin' から mixin をインポートします エクスポートデフォルト{ ミックスイン: [ミックスイン], データ() { 戻る { ユーザー名: 'BComponent' } }, 作成された(){ this.sayHello() }, メソッド: { こんにちは(){ console.log(`こんにちは、${this.userName}`) } } } </スクリプト> 次に結果を出力します。 これは、複数のコンポーネントで使用できる vue パブリック メソッドを登録するのに少し似ています。もうひとつのポイントは、プロトタイプオブジェクトにメソッドを登録するのと似ており、同じ関数名でメソッドを定義して上書きすることができます。 ミックスインはグローバルに登録することもできますが、Vue インスタンスを汚染するため、通常はグローバルには使用されません。 私は通常、プロジェクトでこれを使用します。たとえば、ユニバーサル セレクターが複数のコンポーネントで使用される場合、オプションは yes、no です。mixin を使用して統合辞書項目フィルターを追加し、オプションのエコーを実現できます。 1. まず、辞書項目の意味を保存して公開するための Dictionary.js ファイルを作成します。 エクスポートconst COMMON_SELECT = [ { コード: 0、ラベル: 'はい'}, { コード: 1、ラベル: 'いいえ'} ]; 注: ここで作成された Dictionary.js ファイルは、ページがレンダリングされるときにオプションをループするためにも使用できます。具体的なコードは次のとおりです。 '../constants/Dictionary.js' から { COMMON_SELECT } をインポートします。 エクスポートデフォルト{ データ() { 戻る { comSelectオプション: COMMON_SELECT } } } <v-mode="selStatus" を選択"> <el-option v-for="comSelectOptions 内の項目" :key="item.code" :label="item.label" :value="item.code"></el-option> </選択> 2. 次に、カスタム フィルター関数を保存するための filter.js ファイルを作成します。 '../constants/Dictionary.js' から { COMMON_SELECT } をインポートします。 エクスポートデフォルト{ フィルター: comSelectFilter: (値) => { const ターゲット = COMMON_SELECT.filter(item => { アイテムコード === 値を返す }) target.length ? target[0].label : 値を返す } } } 3. 最後に、main.js に filter メソッドを 1 回導入します。 './mixin/filter' からフィルターをインポートします Vue.mixin(フィルター) ああ、今ではどのコンポーネントでも使用できます。 <テンプレート> <div> .... {{ ステータス | comSelectFilter }} .... </div> </テンプレート> 上記は、vue での mixin の適用に関する詳細な説明です。vue での mixin の適用の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Linux システムによって報告される tcp_mark_head_lost エラーの処理方法
1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...
ファイル名が少ないファイルを表示ファイル名を少なく | grep -n コンテンツを検索内容に応じて...
コードをコピーコードは次のとおりです。 <div スタイル="幅:630px;高さ:...
フォーラムで、ネットユーザーの jeanjean20 が、Marquee を標準に適合させる方法につ...
今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...
目次効果テキストの作成を開始するまずフォントローダーを作成するフォントライブラリを読み込むテキストジ...
目次ライフサイクルを理解する理由ライフサイクルとはライフサイクルフック関数作成され、マウントされたフ...
MySQL はハッシュ インデックスと Btree インデックスをサポートしています。 InnoDB...
序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...
問題記録今日はプログレスバーに似た小さなコンポーネントを完成させるつもりでした。プロトタイプは次のよ...
ユーティリティ = { /** * 死亡年ですか? * @return {Boolse} true...
要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...
目次1. 完全なSQLクエリステートメントの記述順序2. 完全なSQL文の実行順序3. select...
問題の説明私たちのプロジェクトでは、水平方向のテーブルが一般的ですが、必要に応じて垂直方向のテーブル...
2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...