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にデータを同期する方法の詳細な説明

推薦する

ES6 Promiseの使い方の詳細な説明

目次約束とは何ですか?拒否の使用法キャッチの使い方すべての使用法レースの使用約束とは何ですか? Pr...

CSS を使用して適応型の幅と高さを持つ 16:9 の長方形を実装する例

先ほど、適応幅と高さが1:1の正方形を作成する方法について説明しました。 https://www.j...

Docker-compose におけるdepends_on 順序問題を解決する方法についての簡単な説明

コンテナをソートするためにdepends_onを使用しても、コンテナ間の依存関係の問題は完全には解決...

MySQLで日付と時刻を照会する方法

序文:プロジェクト開発では、一部のビジネス テーブル フィールドで日付と時刻の型が使用されることが多...

Linux でハイパースレッディング技術を動的に有効/無効にする方法の詳細な説明

序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...

CSS3は、ズームと回転を実現するためにscale()とrotate()を使用します。

1. scale() メソッドズームとは「縮小」と「拡大」を意味します。 CSS3 では、scal...

CSSでできるならJavaScriptは使わない

序文JavaScript で記述できるアプリケーションは、最終的には JavaScript で記述さ...

Linux コマンドで .sql ファイルをエクスポートおよびインポートする方法

この記事では、Linux コマンドを使用して .sql ファイルをエクスポートおよびインポートする方...

Reactにおけるコンポーネント通信の詳細な説明

目次親コンポーネントは子コンポーネントと通信します子コンポーネントは親コンポーネントと通信しますコン...

MySQL を暗号化および復号化するいくつかの方法 (要約)

目次前面に書かれた双方向暗号化エンコード/デコードAES_ENCRYPT/AES_DECRYPT D...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

Centos8 でローカル Web サーバーを構築するための実装手順

1 概要システム Centos8 では、httpd を使用してローカル Web サーバーを構築します...

元のPATHを上書きしてコマンドが見つからないというメッセージが表示されるコマンド失敗の問題を解決する方法

同僚から、LINUX サーバー上の多くのコマンドが (コマンドが見つかりません) というプロンプトで...

Vueのトグルボタンをクリックしてボタンを有効にし、無効にします。

実装方法は3つのステップに分かれています。テンプレートに 2 つのボタンを設定し、v-if と v-...

MySQL 8.0.18 はクローンプラグインを使用して MGR 実装を再構築します

3 ノード MGR 内の 1 つのノードに異常があり、MGR クラスターに再度追加する必要があるとし...