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

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

序文

Vue での Mixin は比較的単純な知識ポイントです。 less や sass などの CSS 前処理言語に精通している開発者は、mixin にも精通している必要があります。 Vue のミックスインは、less などのミックスインとほぼ同じです。これらはすべて、定義された関数をそのまま Vue コンポーネントに挿入します。これは、オブジェクト指向プログラミングの継承に似ています (似ていると言っただけです :))。

ミックスインは、Vue インスタンスまたはコンポーネント インスタンスのライフサイクル フックとプロパティをプロパティとして持つことができるオブジェクトです。グローバルにまたはコンポーネントにミックスインすると、Vue インスタンスまたはコンポーネント インスタンスには、ミックスインで定義されたライフサイクル フックとプロパティが設定されます。 2 つの間に重複がある場合は、特定のルールに従って結合されます。

ミキシン

  • 複数の vue ファイルで再利用される関数コードを 1 つの js ファイルに抽出し、必要な場所で呼び出します。
  • js ファイル内にオブジェクトを定義します。オブジェクト内には、vue ファイルの <script> で定義できるデータ、メソッド、コンポーネントなどのコードを記述できます。

Mixin ノート (重複名)

  • コンポーネント内のデータ変数名とミックスイン内のデータ変数名が重複している場合は、コンポーネントが優先されます。
  • コンポーネント内のメソッド、計算済みメソッド、および wath の名前が重複している場合と、ミックスイン内のメソッド、計算済みメソッド、および wath の名前が重複している場合、コンポーネントが優先されます。
  • コンポーネント内のライフフック関数とミックスイン内のライフフック関数の名前が同じ場合、両方が実行されますが、コンポーネント内のフック関数が最初に実行されます。

ローカルミックスイン

グローバル ミックスイン

定義とグローバル登録

電話

継承する

  • 注意: 多重継承の問題が頻繁に発生するため、多重継承はここでは適していません。
  • .vue ファイルを継承するだけでなく、extends では mixin のように js ファイル内のオブジェクトも使用できます。
  • extends inheritance.vueファイル内のテンプレートのHTMLは継承できません

ミックスインと継承の違い

  • まずは公式ドキュメントの定義を見てみましょう。実は、どちらも継承として理解することができます。
  • ミックスインはオブジェクトの配列を受け取ります(これは多重継承として理解できます)。
  • extends が受け取るのはオブジェクトまたは関数です (単一継承として理解できます)。
  • 注: コンポーネントが継承とミックスインの両方を使用する場合、両者の間に重複する名前があると、ミックスインが継承をオーバーライドします。

要約する

Vue のミックスインと継承に関するこの記事はこれで終わりです。Vue のミックスインと継承に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue2.0コンポーネントの継承と拡張の詳細な説明
  • Web プロジェクト開発 VUE の混合と継承の原則
  • Vueにおける混合継承の詳細な説明

<<:  Nginx の起動に失敗した場合のいくつかのエラー処理の詳細な説明

>>:  URLパラメータに基づくNginx転送

推薦する

Dockerとiptablesとブリッジモードのネットワーク分離と通信操作の実装

Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...

CSS を使用してサブ要素に応じて異なるスタイルを記述する方法

達成すべき効果: 必要なもの1枚、2枚、3枚とスタイルが異なります。子要素の判定はjsで完結できます...

MySQL 更新セットとの違い

目次問題の説明原因分析解決問題の説明最近、奇妙な問い合わせを受けました。更新ステートメントはエラーな...

OpenSSL は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)

1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...

MySQL で遅い SQL 文を見つける方法

MySQL で遅い SQL ステートメントを見つけるにはどうすればよいでしょうか?これは、多くの人を...

シンプルなページカウントダウンを実現するJavaScript

この記事では、参考までに、シンプルなページカウントダウンを実装するためのJavaScriptの具体的...

mysql5.7.21 utf8 エンコーディングの問題と Mac 環境での解決方法

1. 目標: mysql の character_set_server の値を latin1 から ...

この記事は、Dockerにおけるcgroupの具体的な使用法を徹底的に理解するのに役立ちます。

目次cgroupとはcgroupの構成cgroupが提供する機能cgroup 内の CPU を制限す...

docker compose の記述ルールについての簡単な説明

この記事ではクラスタの展開に関連する内容は紹介しませんバージョン制約Docker エンジン >...

Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー

目次概要環境の準備プロジェクトのパフォーマンスに影響を与える要因遅延読み込みとは何ですか?プロジェク...

Angular CLI リリース パスの構成項目の簡単な分析

序文プロジェクトのリリースでは、常に特定の状況に応じたパッケージ化が必要です。Angular CLI...

MySQL 8.0.12 解凍バージョンのインストールチュートリアル

この記事では、MySQL 8.0.12解凍版のインストールチュートリアルを参考までに紹介します。具体...

Kafka の Docker デプロイメントと Spring Kafka 実装

この記事は主にDockerによるKafkaのデプロイとSpring Kafkaの実装について紹介しま...

MySQL で期限切れのデータレコードを定期的に削除する簡単な方法

1. MySQL に接続してログインしたら、まず MySQL でイベント機能が有効になっているかどう...

Vueでタイマーをエレガントにクリアする方法

目次序文最適化派生的な質問: beforeDestroy はトリガーされませんか?序文タイマーをクリ...