Vue で親コンポーネントと子コンポーネント間の通信を実装するにはどうすればよいですか?
Vue では、コンポーネントはユーザー インターフェイスを構築する重要な部分であり、インターフェイスをより小さく再利用可能な部分に簡単に分解できます。ページには複数のコンポーネントが含まれる場合があるため、コンポーネント間の通信が重要になります。特に親コンポーネントと子コンポーネント間の通信。
Vue は、props と $emit を介して親コンポーネントと子コンポーネント間の通信を実装します。この記事では両方の方法を紹介します。
1. Props
Props は、Vue の親コンポーネントが子コンポーネントにデータを渡す方法です。 props は、子コンポーネントに渡されるデータ属性を格納する配列です。子コンポーネントでは、props を使用して親コンポーネントから渡されたデータを受け取ります。
プロパティの使用: まず、親コンポーネントでプロパティを定義します。コードは次のとおりです:
<template> <child :message="parentMsg"/> </template> <script> import Child from "./Child.vue"; export default { data() { return { parentMsg: "父组件的数据", }; }, components: { Child, }, props: ["parentMsg"], //在父组件中定义props }; </script>
上記のコードでは、親コンポーネントは、message という名前のメッセージを子コンポーネントに渡します。小道具、プロパティ。
次に、子コンポーネントで props を受け取ります。
<template> <h2>{{ message }}</h2> </template> <script> export default { props: { message: { type: String, required: true, //props接收的属性必须有值 }, }, }; </script>
子コンポーネントでは、親コンポーネントによって渡されたメッセージ属性が props を介して受信されます。
このとき、親コンポーネントのページには「親コンポーネントデータ」という値が表示されます。
2. $emit
$emit は、Vue のサブコンポーネントが親コンポーネントにメッセージを送信する方法です。子コンポーネントで特定のイベントが発生すると、$emit を通じて親コンポーネントのイベント メソッドをトリガーできます。 $emit メソッドの最初のパラメーターはトリガーされるイベントの名前で、2 番目のパラメーターは親コンポーネントに渡されるパラメーターです。
$emit の使用法: まず、子コンポーネントでイベント メソッドを定義します。イベントがトリガーされたら、$emit メソッドを呼び出してメッセージを親コンポーネントに渡します。コードは次のとおりです:
<template> <button @click="onClick">点击传递消息到父组件</button> </template> <script> export default { methods: { onClick() { this.$emit("child-msg", "子组件的数据"); }, }, }; </script>
上記のコードでは、子コンポーネントは onClick イベント メソッドを定義しています。ボタンがクリックされると、$emit メソッドを通じて child-msg という名前のイベントがトリガーされ、「子コンポーネント データ」パラメータが渡されます。 。
次に、親コンポーネントでこのイベントをリッスンします:
<template> <div> <div>{{ message }}</div> <child @child-msg="getChildMsg"></child> </div> </template> <script> import Child from "./Child.vue"; export default { data() { return { message: "", }; }, components: { Child, }, methods: { getChildMsg(msg) { this.message = msg; //监听子组件的事件,获取传递过来的参数 }, }, }; </script>
上記のコードでは、親コンポーネントは @ 記号を使用して子コンポーネントのイベントをリッスンします。子コンポーネントが child-msg イベントをトリガーすると、親コンポーネントはイベントに応答し、getChildMsg メソッドを通じて子コンポーネントから渡されたデータを受信し、そのデータをページに表示します。
上記 2 つの方法により、Vue で親コンポーネントと子コンポーネント間の通信を実現できます。コードは簡潔で理解しやすく、保守しやすいため、コンポーネント開発の効率が向上します。
以上がVue で親コンポーネントと子コンポーネント間の通信を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

Vue.jsでは、Lazy Loadingを使用すると、コンポーネントまたはリソースを必要に応じて動的にロードすることができ、初期ページの読み込み時間を短縮し、パフォーマンスを改善できます。特定の実装方法には、&lt; Keep-Alive&gt;および&lt;コンポーネントは&gt;コンポーネント。怠zyなロードは、FOUC(スプラッシュ画面)の問題を引き起こす可能性があり、不必要なパフォーマンスのオーバーヘッドを避けるために怠zyなロードが必要なコンポーネントにのみ使用する必要があることに注意してください。

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。
