Vueコンポーネント化の基本的な使用方法の詳細

Vueコンポーネント化の基本的な使用方法の詳細

序文:

場合によっては、HTML 構造化コードのセットが存在し、それにイベントがバインドされることがあります。すると、このコードは複数の場所で使用される可能性があり、あちこちにコピーされると、イベント部分のコードを含め、多くのコードが繰り返されることになります。そして、この時点でこれらのコードをコンポーネントにカプセル化することができ、将来それを使用するときには、通常のhtml要素を使用するのと同じように使用できます。

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

vue.jsには 2 つの魔法の武器があります。1 つはデータ駆動型、もう 1 つはコンポーネント化です。そこで疑問になるのは、コンポーネント化とは何であり、なぜコンポーネント化が必要なのかということです。次に、この 2 つの質問に 1 つずつお答えします。コンポーネント化とは、ページを複数のコンポーネントに分割し、各コンポーネントが依存するCSSJS 、テンプレート、画像などのリソースをまとめて開発、保守することです。 コンポーネントはリソースに依存しないため、システム内で再利用でき、ネストできます。プロジェクトが複雑な場合、コードの量を大幅に簡素化でき、後からの変更やメンテナンスにもより適しています。

2. 基本的な使い方

<div id="アプリ">
  <ボタン カウンター></ボタン カウンター>
  <ボタン カウンター></ボタン カウンター>
  <ボタン カウンター></ボタン カウンター>
</div>
<スクリプト>
  // button-counterという新しいコンポーネントを定義します Vue.component('ButtonCounter', {
    データ: 関数 () {
      戻る {
        カウント: 0
      }
    },
    テンプレート: '<button @click="count++">{{ count }} 回クリックしました</button>'
  })
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
      メッセージ: 「こんにちは」
    }
  })
</スクリプト>

上記では、ボタンがクリックされた回数を記録する機能を実装するbutton-counterというコンポーネントを作成しました。後から使用したい場合は、 button-counterを通じて使用できます。コンポーネントは再利用可能なVueインスタンスであるため、 datacomputedwatchmethods 、 lifecycle hooks など、 new Vueと同じオプションを受け取ります。唯一の例外は、el のようなルートインスタンス固有のオプションです。

もう一つ注意すべき点は、コンポーネント内のdata関数である必要があるということです。

達成された結果を見てみましょう:

上記ではbutton-counterコンポーネントを 3 回使用したため、ページには 3 つのコンポーネントが表示され、各コンポーネントは独立してcountを維持します。これは、コンポーネントを使用するたびに新しいインスタンスが作成されるためです。各インスタンスは返されたオブジェクトの独立したコピーを保持できるため、 dataで関数を使用します。

Vue コンポーネント化の基本的な使い方についてはこれで終わりです。Vue コンポーネント化の使い方に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue ライフサイクルにおけるコンポーネント化をご存知ですか?
  • Vue コンポーネントの学習範囲を限定した詳細な説明
  • Vue コンポーネント開発に必須のスキル: コンポーネントの再帰
  • Vueドロップダウンメニューのコンポーネント開発の詳細説明
  • Vue コンポーネント化の一般的な方法: コンポーネント値の転送と通信
  • Vueのコンポーネント化を一緒に学びましょう

<<:  MySQL 文字列分割操作 (区切り文字を含む文字列のインターセプション)

>>:  Zabbix動的実行監視収集スクリプトの実装原理

推薦する

iframe なしの div ネスト HTML

最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...

Centos で MySQL パスワードを変更する方法

1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...

小さな三角形の実装コードを含む CSS ナビゲーション バー メニュー

多くの Web ページにはナビゲーション バーに小さな三角形があり、この機能を実装するのは実は非常に...

MySQL マルチインスタンス構成のアプリケーションシナリオ

目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...

Windows ベースの MySQL 8.0.12 のインストール

このチュートリアルは Windows システムにのみ適用されます。インストールしたがまだインストール...

HTML 文法百科事典_HTML 言語文法百科事典 (必読)

ボリュームラベル、プロパティ名、説明002 <! - - ... - -> コメント00...

MySQLの一般的なバックアップコマンドとシェルバックアップスクリプトの共有

複数のデータベースをバックアップするには、次のコマンドを使用できます。 mysqldump -uro...

MySQL インデックスクエリ最適化スキルを習得するための記事

序文この記事では、DBA がいないチームが参考にできるように、MySQL の一般的な使用に関するヒン...

さまざまな MySQL テーブルソートルールのエラーの分析

MySQL が複数のテーブルを結合するときに、次のエラーが報告されます: [Err]1267 – 操...

プロジェクトの再構築からプロジェクトにおける CSS3 カスタム変数の使用について話す

CSS3変数について変数を宣言するときは、変数名の前に 2 つのハイフン ( -- ) を追加します...

Dockerfile ビルド中に発生する「/bin/sh: pip: コマンドが見つかりません」という問題の解決方法

記述した Dockerfile の内容は次のとおりです。 Python:3.6.8 から pip i...

MySQL トリガーの使用シナリオとメソッドの例

トリガー:トリガーの使用シナリオと対応するバージョン:トリガーは次の MySQL バージョンで使用で...

Docker のコンテナ データ ボリュームの概要

目次Dockerコンテナのデータ量データボリュームの使用方法1: コマンド-vを使用して直接マウント...