Vue のプラグインとコンポーネントの違いと使い方のまとめ

Vue のプラグインとコンポーネントの違いと使い方のまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DELL G3 コンピュータ。

1. コンポーネントとは何ですか?

コンポーネントの以前の定義を思い出してください。

コンポーネントとは、さまざまなグラフィックおよび非グラフィックのロジックを統一された概念 (コンポーネント) に抽象化する開発モデルです。Vue では、各 .vue ファイルをコンポーネントと見なすことができます。

コンポーネントの利点

  • システム全体の結合を減らします。インターフェースを変更せずに、さまざまなコンポーネントを置き換えて、要件を迅速に満たすことができます。たとえば、入力ボックスは、特定の実装に合わせてカレンダー、時間、範囲などのコンポーネントに置き換えることができます。
  • デバッグが簡単。システム全体がコンポーネントで構成されているため、問題が発生した場合、消去法を使用してコンポーネントを直接削除するか、エラーを報告したコンポーネントに基づいて問題をすばやく特定できます。すぐに特定できる理由は、各コンポーネントが疎結合で単一の責任を持っているため、システム全体を分析するよりもロジックが単純になるためです。
  • 保守性の向上。各コンポーネントは単一の責任を持ち、システム内でコンポーネントが再利用されるため、コードを最適化するとシステム全体のアップグレードを実現できます。

2. プラグインとは何ですか?

プラグインは、Vue にグローバル機能を追加するためによく使用されます。プラグインの機能の範囲には厳密な制限はありません。一般的に、プラグインは次のカテゴリに分類されます。

  • グローバル メソッドまたはプロパティを追加します。例えば: vue-custom-element
  • グローバル リソースを追加します: ディレクティブ/フィルター/トランジションなど。 vue-touchなど
  • グローバル ミックスインを介していくつかのコンポーネント オプションを追加します。 vue-routerなど
  • Vue インスタンス メソッドを Vue.prototype に追加して追加します。
  • 独自の API を提供し、上記の機能の 1 つ以上を提供するライブラリ。 vue-routerなど

3. 両者の違い

両者の違いは主に以下の点に反映されています。

  • 文章の形式
  • 登録フォーム
  • 使用シナリオ

文章の形式

コンポーネントの記述

コンポーネントを記述する方法は多数あります。最も一般的な方法は、vue 単一ファイル形式です。各 .vue ファイルはコンポーネントとみなすことができます。

vueファイルの標準フォーマット

<テンプレート>
</テンプレート>
<スクリプト>
エクスポートデフォルト{ 
    ...
}
</スクリプト>
<スタイル>
</スタイル>

テンプレート属性を通じてコン​​ポーネントを書き込むこともできます。コンポーネントのコンテンツが大きい場合は、テンプレート コンポーネントのコンテンツを外部で定義できます。コンポーネントのコンテンツが大きくない場合は、テンプレート属性に直接書き込むことができます。

<template id="testComponent"> // コンポーネント表示コンテンツ <div>component!</div>   
</テンプレート>
 
Vue.component('componentA',{ 
    テンプレート: '#testComponent'  
    template: `<div>component</div>` // この形式は、コンテンツの少ないコンポーネントに使用できます})

プラグインの作成

Vue プラグインの実装では、インストール メソッドを公開する必要があります。このメソッドの最初のパラメーターは Vue コンストラクターであり、2 番目のパラメーターはオプションのオプション オブジェクトです。

MyPlugin.install = 関数 (Vue、オプション) {
  // 1\. グローバルメソッドまたはプロパティを追加する
  Vue.myGlobalMethod = 関数(){
    // ロジック...
  }
 
  // 2\. グローバルリソースを追加する Vue.directive('my-directive', {
    バインド (el、バインディング、vnode、oldVnode) {
      // ロジック...
    }
    ...
  })
 
  // 3\. コンポーネントオプションを挿入する Vue.mixin({
    作成: 関数 () {
      // ロジック...
    }
    ...
  })
 
  // 4\. インスタンスメソッドを追加する Vue.prototype.$myMethod = function (methodOptions) {
    // ロジック...
  }
}

登録フォーム

コンポーネント登録

Vueコンポーネントの登録は主にグローバル登録とローカル登録に分かれています

グローバル登録は Vue.component メソッドを通じて行われます。最初のパラメーターはコンポーネントの名前で、2 番目のパラメーターは渡された構成項目です。

Vue.component('コンポーネント名', { /* ... */ })

ローカル登録では、コンポーネントが使用されるコンポーネント プロパティを通じてコン​​ポーネントを登録するだけです。

const component1 = {...} // コンポーネントを定義する export default {
    コンポーネント:{
        コンポーネント1 // ローカル登録}}

プラグイン登録

プラグインは Vue.use() を介して登録 (インストール) されます。最初のパラメータはプラグインの名前で、2 番目のパラメータはオプションの構成項目です。

Vue.use(プラグイン名,{ /* ... */ )

ご了承ください:

プラグインを登録する場合は、new Vue() を呼び出してアプリケーションを起動する前に登録する必要があります。

Vue.useは、同じプラグインの複数の登録を自動的に防止し、一度だけ登録します。

使用シナリオ

詳細はプラグインとは何かのセクションで説明しているので、ここでまとめておきます。

コンポーネントは、アプリのビジネスモジュールを形成するために使用されます。そのターゲットはApp.vueです。

プラグインは、テクノロジースタックを強化するために使用される機能モジュールです。そのターゲットは Vue 自体です。

簡単に言えば、プラグインは Vue の機能を強化または補足するものです。

以上で、Vue のプラグインとコンポーネントの違いと使い方のまとめの記事は終了です。Vue のプラグインとコンポーネントの違いについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue-cropperプラグインは、画像キャプチャとアップロードコンポーネントのカプセル化を実現します。
  • Vueはスロットルまたはデバウンスをコンポーネントまたはプラグインとして実装します
  • Vue は zTree プラグインを使用してツリーコンポーネント操作の例をカプセル化します。
  • Vue のカスタム ページング プラグイン コンポーネントの例
  • Vue2x をベースにしたレスポンシブ アダプティブ カルーセル コンポーネント プラグイン VueSliderShow 関数の実装
  • Vue カスタム グローバル コンポーネント (カスタム プラグイン) の使用
  • ブートストラップ選択プラグインはVue2.0コンポーネントとしてカプセル化されています

<<:  CSS3 のフレックスレイアウト幅の無効性の解決策

>>:  MySQLからElasticsearchにデータを同期する方法の詳細な説明

推薦する

Vue がルート変更を監視するときに watch メソッドが複数回実行される理由と解決策

目次要件の説明:要件分析:ニーズの解決問題解決私はフロントエンドの新人ですが、バックエンドのバグの中...

MySQL複合インデックスの概要

目次1. 背景2. 複合インデックスを理解する3. 左端一致原則4. フィールド順序の影響5. 単一...

期間限定フラッシュセール機能を実現するJavaScriptタイマー

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

MySql が常に mySqlInstallerConsole ウィンドウをポップアップする問題の解決策

MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...

MySQL データベースに基づくデータ制約の例と 5 つの整合性制約の紹介

非準拠データがデータベースに入るのを防ぐために、ユーザーがデータを挿入、変更、削除、その他の操作を行...

Reactエラー境界コンポーネント処理

React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...

小規模プログラムへのデータキャッシュ機構の応用と実装

ミニプログラムデータキャッシュ関連知識データ キャッシュ: データをキャッシュして、アプレットを終了...

Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明

1. マックヴラン前回のブログ投稿で紹介した Docker コンテナのホスト間通信を実現するための ...

js配列の基本的な使い方のまとめ

序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...

MySQL ルートパスワードをリセットする方法

目次1. ルートパスワードを忘れてしまい、データベースにアクセスできない: DBA にとって、スーパ...

JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明

目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

Raspberry Pi 4b ubuntu19 サーバーへの docker-ce のインストール手順

Raspberry Pi モデルは 4b、1G RAM です。システムはubuntu19.10サーバ...

HTML タグ tbody の使い方と説明

tbody 要素は、thead 要素および tfoot 要素と組み合わせて使用​​する必要があります...

DockerはClickHouseをインストールし、データテストを初期化します

クリックハウスの紹介ClickHouse は、SQL クエリを使用して分析データ レポートをリアルタ...