Vueコンポーネントの作成方法と使用方法を説明する記事

Vueコンポーネントの作成方法と使用方法を説明する記事

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

コンポーネントは、Vue.js の最も強力な機能の 1 つです。コンポーネントは HTML 要素を拡張して再利用可能なコードをカプセル化します。大まかに言えば、コンポーネントは Vue.js コンパイラが特別な機能を追加するカスタム要素です。

2. グローバルコンポーネントを作成する

方法1

1. Vue.extend

       var com1 = Vue.extend({
// テンプレートプロパティは、コンポーネントが表示する HTML 構造を指定します。テンプレート: '<h3>これは Vue.extend を使用して作成されたコンポーネントです</h3>'
            })

2. Vue.コンポーネント

Vue.component('コンポーネント名', 作成されたコンポーネントテンプレートオブジェクト)はコンポーネントを登録します

  Vue.component('myCom1', com1)

注意:Vue.Component を使用してグローバル コンポーネントを登録し、コンポーネント名がキャメル ケースである場合は、コンポーネントを参照するときに大文字のキャメル ケースを小文字に変更する必要があります。同時に、2 つの単語の間に「–」リンクを使用します。使用しない場合は、名前を直接使用してください。

ここに画像の説明を挿入

方法2

Vue.component を直接使用する

            Vue.component('mycom2', {
                テンプレート: '<div><h3>これは Vue.component を使用して直接作成されたコンポーネントです</h3>
<span>123</span></div>'
            })

例:

ここに画像の説明を挿入

方法3

1. 制御された #app の外部で、テンプレート要素を使用してコンポーネントの HTML テンプレート構造を定義します。

<テンプレートid="tmpl">
            <div>
                <h1>これはテンプレート要素を通じて外部的に定義されたコンポーネント構造です</h1>
                <h4>使いやすいです、良いです!</h4>
            </div>
        </テンプレート>

2. IDを使用してコンポーネントを登録する

   Vue.component('mycom3', {
        テンプレート: '#tmpl'
    })

3. ローカルコンポーネントの作成

ローカル コンポーネントは、グローバル コンポーネントと同じ方法で作成されます。唯一の違いは、部分コンポーネントが Vue インスタンス内で定義されることです。

ここに画像の説明を挿入

4. コンポーネント内のデータとメソッド

1. コンポーネントは独自のデータを持つことができます。

2. コンポーネント内のデータはインスタンス内のデータとは少し異なります。インスタンス内のデータはオブジェクトになる場合があります。ただし、コンポーネント内のデータはメソッドである必要があります。

3. コンポーネント内のデータは、メソッドであるだけでなく、オブジェクトを返す必要もあります。

4. コンポーネント内のデータは、インスタンス内のデータと同じように使用されます。 (方法についても同様です)

ここに画像の説明を挿入

5. コンポーネント間の通信

ここに画像の説明を挿入

props/$emit

親コンポーネント A は子コンポーネント B に props を渡し、B から A への処理はコンポーネント B の $emit とコンポーネント A の v-on によって実装されます。

サブコンポーネント:

<テンプレート>
  <div class="hello">
    <ul>
      <li v-for="(user,index) in users" v-bind:key="index">{{ user }}</li>
    </ul>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  名前: "ユーザー"、
  小道具: {
    users: { //親コンポーネント内の子タグのカスタマイズされた名前 type: Array,
      必要: true
    }
  }
}
</スクリプト>

<スタイルスコープ>
 li{
   リストスタイルの位置: 内側;
 }
</スタイル>

親コンポーネント:

<テンプレート>
  <div id="アプリ">
    <img alt="Vue ロゴ" src="./assets/logo.png">
    <Users v-bind:users="users"> </Users>
  </div>
</テンプレート>

<スクリプト>
「@/components/users」からユーザーをインポートします。
エクスポートデフォルト{
  名前: 'アプリ'、
  データ(){
    戻る {
      ユーザー: ['西安郵電'、'西安石油'、'西北政法'、'西安産業'、'西安金融']
    }
  },
  コンポーネント:
    ユーザーの皆様、
  }
}
</スクリプト>

イベント形式別

サブコンポーネント:

<テンプレート>
  <ヘッダー>
    <h1 @click="changeTitle">{{ タイトル }}</h1>
  </ヘッダー>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前:「息子」
  データ(){
    戻る {
      タイトル: 「Vue.js デモ」
    }
  },
  メソッド: {
    タイトルを変更する(){
      this.$emit('titleChanged','西安郵電大学');
    }
  }
}
</スクリプト>

<スタイルスコープ>
 h1{
   背景色: 緑黄色;
 }
</スタイル>

親コンポーネント:

<テンプレート>
  <div id="アプリ">
    <Son v-on:titleChanged="updateTitle"></Son>
    <h2>{{ タイトル }}</h2>
  </div>
</テンプレート>
<スクリプト>
Son を "@/components/Son" からインポートします。
エクスポートデフォルト{
  名前:「父」
  データ(){
    戻る {
      タイトル: 「渡されるのは値です」
    }
  },
  メソッド: {
    タイトルを更新(e){
      this.title = e
    }
  },
  コンポーネント:{
    息子、
  }
}
</スクリプト>

要約する

子コンポーネントはイベントを通じて親コンポーネントにメッセージを送信します。これは実際には、子コンポーネントが独自のデータを親コンポーネントに送信することを意味します。

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueでコンポーネントを動的に作成する2つの方法
  • Vueコンポーネントを作成する3つの方法のまとめ
  • Vueコンポーネントの作成と公開方法の詳細な説明
  • Vueコンポーネントで値を作成して渡す方法
  • Vue の新しい組み込みコンポーネントの使用方法の詳細な説明

<<:  Bootstrap が人気な 11 の理由

>>:  HTML 5.1 学習: 14 の新機能とアプリケーション例

推薦する

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

http-proxy-middlewareを使用してNodeでプロキシクロスドメインを実装する方法と手順

目次1. プロキシモジュールをインストールする2. プロキシを設定する1. プロキシモジュールをイン...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

ビジュアルデザイナーの成長の3つの段階のまとめ

この本「グラフィックデザイナーとして成長する」は多くの人が読んでおり、私もオリジナルの PDF 版を...

Google 翻訳ツール: 多言語ウェブサイトを素早く実装

Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...

24 の実用的な JavaScript 開発のヒント

目次1.配列を初期化する2. 配列の合計、最大値、最小値3. エラー値をフィルタリングする4. 論理...

CSS3 を使用して中心点の周りに要素を配置する方法の例

この記事では、CSS3 を使用して中心点を中心に要素をレイアウトする方法の例を紹介します。詳細は次の...

Tomcat クラスローダーの実装方法とサンプルコード

Tomcat は内部的に複数の ClassLoader を定義し、アプリケーションとコンテナーが異な...

IEの送信フォームの記録履歴クリックリターン情報を実現するためのCSSスタイルコントロールはまだ残っています

これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...

CSSスタイルとセレクターの使い方

HTML で CSS を使用する 3 つの方法: 1. インラインスタイル: 要素のスタイル属性を通...

CentOS の Nginx 公式 Yum ソースの設定を詳しく解説

私はプロジェクトの展開にAlibaba Cloudから購入したCentOSを使用しています。最近、プ...

Dockerがsudo操作を使用する必要がある問題を解決する

手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

Linux Autofs 自動マウント サービスのインストールと展開のチュートリアル

目次1. autofs サービスの紹介2. Autofsのインストールと展開3. Autofs効果の...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...