背景ここで、状況について説明しましょう。親コンポーネントは孫コンポーネントとどのように通信するのでしょうか。解決策はいくつあるでしょうか。
1. 文書の説明(1) $props : 現在のコンポーネントが受け取ったpropsオブジェクト。 Vue インスタンスは、その props オブジェクトのプロパティへのアクセスをプロキシします。 (2) $attrs :親スコープでプロパティとして認識(および取得)されない属性バインディング(クラスとスタイルを除く)が含まれます。 (3) $listeners : 親スコープ内のv-onイベントリスナーが含まれます(.native修飾子なし)。 v-on="listeners" を通じて内部コンポーネントに渡すことができます。 2. 特定の用途1. 親コンポーネント <テンプレート> <div> <div>親コンポーネント</div> <子供 :foo="foo" :zoo="動物園" @handle="handleFun" > </子> </div> </テンプレート> <スクリプト> './Child.vue' から Child をインポートします。 エクスポートデフォルト{ コンポーネント: { 子 }, データ() { 戻る { foo: 'foo', 動物園: 「動物園」 } }, メソッド: { // イベントを渡す handleFun(value) { this.zoo = 値 console.log('孫コンポーネントでクリックイベントが発生したので受信しました') } } } </スクリプト> 2. 子コンポーネント(Child.vue) 中間層は、親コンポーネントと孫コンポーネント間の伝送仲介者として、孫コンポーネントがデータを受信できるように、息子コンポーネント内の孫コンポーネントに
<テンプレート> <div クラス = '子ビュー'> <p>子コンポーネント - {{$props.foo}} は {{foo} と同じ内容を持ちます。}</p> <GrandChild v-bind="$attrs" v-on="$listeners"></GrandChild> </div> </テンプレート> <スクリプト> './GrandChild.vue' から GrandChild をインポートします。 エクスポートデフォルト{ // 親コンポーネントのコンテンツをすべて継承します。inheritAttrs: true, コンポーネント: { GrandChild }, プロパティ: ['foo'], データ() { 戻る { } } } </スクリプト> 3. 孫コンポーネント (GrandChild.vue) 孫コンポーネントでは、親コンポーネントから渡されたデータを受け取るためにpropsを使用する必要があります。 <テンプレート> <div class='孫のビュー'> <p>孫コンポーネント</p> <p>孫コンポーネントに渡されたデータ: {{zoo}}</p> <button @click="testFun">クリックしてイベントをトリガーします</button> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ // 親コンポーネントのコンテンツをすべて継承せず、コンポーネントのルート要素 DOM に属性を表示しません。inheritAttrs: false, // このコンポーネントでは、親コンポーネントから渡されたデータを受け取る必要があります。props のパラメータ名は変更できないことに注意してください。親コンポーネントから渡された props と同じである必要があります: ['zoo'], メソッド: { テストファン(){ this.$emit('handle', '123') } } } </スクリプト> 結論上記のコードから、 attrs 属性とinheritAttrs属性を使用すると、簡潔なコードを使用してコンポーネント Aのデータをコンポーネント Cに渡すことができることがわかります。このシナリオの使用範囲は非常に広範囲です。 listenersを通じて、コンポーネント b に v-on="$listeners" をバインドし、コンポーネント a で、コンポーネント c によってトリガーされたイベントをリッスンします。コンポーネント c によって送信されたデータはコンポーネント a に渡すことができます。 Vue における $props、$attrs、$listeners の詳細な使用法に関するこの記事はこれで終わりです。Vue の $props、$attrs、$listeners に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MIME TYPEとは?MIME-Typesタイプコレクション
>>: 透明な入力ボックスにアイコンを追加する HTML コード
目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...
背景何が起こったかというと、Luzhu は偶然、宇宙で最高の外部スピーカーを備えた携帯電話について知...
目次序文: 1. Dockerをインストールする2. DockerでJenkinsをインストールする...
1. sql_modeを確認する @@sql_mode を選択照会された値は次のとおりです。 ON...
最近、プロジェクトで選択クエリを使用する際に、未使用の主キー ID を除外するために not in ...
目次仕様a. ページファイルはVueの単一ファイルコンポーネント仕様に準拠しています。 b. コンポ...
500 (内部サーバー エラー) サーバーでエラーが発生したため、要求を完了できませんでした。 50...
目次1. Promise とは何ですか? 2. なぜ Promise が存在するのでしょうか? 3つ...
1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...
目次1. 概要2. オブジェクト作成のパラメータ3. 監視例4. 使用方法5. ソースコード1. 概...
序文:この記事は、CUDA 9.0 をインストールした経験に基づいています。CUDA 9.0 は現在...
序文みなさんこんにちは。CSS ウィザードの alphardex です。この記事では、three.j...
ps: 環境はタイトル通りです依存関係をインストールする yum インストール openssl-de...
序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...
この記事では、例を使用して MYSQL パフォーマンス アナライザー EXPLAIN の使用方法を説...