Vue3における非親子コンポーネント通信の詳細な説明

Vue3における非親子コンポーネント通信の詳細な説明

ビジネスシナリオでは、親子コンポーネントが通信するのではなく、

ファイルディレクトリ

ここに画像の説明を挿入

最初の方法

アプリ.vue

<テンプレート>
  <div>
    <ホーム></ホーム>
    <button @click="addName">名前を追加</button>
  </div>
</テンプレート>
 <スクリプト>
「./Home.vue」から Home をインポートします。
「vue」から computed をインポートします。
エクスポートデフォルト{
  名前:「アプリ」、
  コンポーネント:
    家、
  },
  提供する() {
    戻る {
      名前:「張三」
      年齢: 23歳
      長さ: 計算された(() => this.names.length)、
    };
  },
  データ() {
    戻る {
      名前: ["張三"、"李斯"、"王武"]、
    };
  },
  メソッド: {
    名前を追加します(){
      this.names.push("ファックユー");
      コンソールログ("hhhh");
    },
  },
};
</スクリプト>
 <スタイルスコープ>
</スタイル>

ホーム.vue

<テンプレート>
  <div>
    <div>ただいま</div>
    <ホームコンテンツ></ホームコンテンツ>
  </div>
</テンプレート>
 <スクリプト>
「./HomeContent.vue」からHomeContentをインポートします。
エクスポートデフォルト{
  名前: "ホーム",
  コンポーネント:
    ホームコンテンツ、
  },
};
</スクリプト>
 <スタイルスコープ>
</スタイル>

ホームコンテンツ.vue

<テンプレート>
  <div>ホームコンテンツ:{{ name }}--{{ age }}---{{ length }}</div>
</テンプレート>
 <スクリプト>
エクスポートデフォルト{
  挿入: ["名前", "年齢", "身長"],
};
</スクリプト>
 <style lang="scss" スコープ>
</スタイル>

vue3 で Provide 関数と Inject 関数を使用する

実際、Provide と Inject については以前に学習しました。Composition API は、以前の Provide と Inject オプションを置き換えることもできます。

以下の方法でデータを提供できます:

Provide は 2 つのパラメータを渡すことができます。

name : 指定された属性名。

value : 提供される属性値。

ここに画像の説明を挿入

子孫コンポーネントでは、inject を使用して必要なプロパティと対応する値を挿入できます。

必要なコンテンツを挿入するには inject を使用できます。

Inject は 2 つのパラメータを渡すことができます。

注入するプロパティの名前。

デフォルト値;

ここに画像の説明を挿入

データの応答性

提供された値と注入された値の間に応答性を追加するには、値を提供するときに ref と reactive を使用します。

レスポンシブプロパティの変更

レスポンシブ データを変更する必要がある場合は、データが提供される場所で変更するのが最適です。変更メソッドを共有し、子孫コンポーネントで呼び出すことができます。

知らせ

サブコンポーネントが使用のみ可能で変更できない状態である場合

ここに画像の説明を挿入

要約する

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

以下もご興味があるかもしれません:
  • Vue コンポーネント通信における非親子コンポーネント値転送の知識ポイントのまとめ
  • Vue の非親子コンポーネント通信の問題と解決策
  • Vue のイベント バスにおける非親子コンポーネント通信の分析
  • Vue2 で Bus.js を使用して親子以外のコンポーネント通信を実現する方法
  • Vueの非親子コンポーネント通信の詳細な説明
  • Vue の非親子コンポーネント間の通信を理解していますか?

<<:  SQL 最適化チュートリアル: IN クエリと RANGE クエリ

>>:  入力が完了したことを検出し、次のコンテンツを自動的に入力する HTML を実装する方法

推薦する

このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

目次1. このキーワード2. カスタム属性3. 包括的なケース1:タブの実装付録要約する1. このキ...

MYSQL の解凍版における中国語の文字化け問題の解決方法

MYSQLの解凍バージョンがインストールされます1: 解凍後、my.ini ファイルをコピーし、バイ...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...

Vue.js パフォーマンス最適化 N 個のヒント (収集する価値あり)

目次機能コンポーネント子コンポーネントの分割ローカル変数v-show によるDOMの再利用キープアラ...

Vueのフロントエンドシステムとフロントエンドとバックエンドの分離の詳細な説明

目次概要フロントエンド知識システムフロントエンドの3つの要素プレゼンテーション層 (CSS)動作レイ...

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

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

DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法

目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...

ウェブページのテーブルの境界線を設定する方法

<br />前回は、Web テーブルにセルの線を設定する方法を学びました。今日は、Web...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

CSS クロスフェード() を使用して半透明の背景画像効果を実現するサンプルコード

1. 要件の説明特定の要素については、背景background-imageを半透明にしたいが、テキス...

JavaScript でローカル変数をグローバル変数に変換する方法

まず関数の自己呼び出しを知る必要がある関数の自己呼び出し - 自己呼び出し関数1 回限りの関数 - ...

Docker に Zookeeper を素早くインストールする方法の詳細なチュートリアル

Docker で Zookeeper を素早くインストール会社を変わってから長らくZookeeper...

MySQLカバーインデックスの使用例

カバーインデックスとは何ですか?クエリで使用されるすべてのフィールドを含むインデックスを作成すること...

TypeScript インターフェースの紹介

目次1. インターフェース定義2. 属性2.1 オプション属性2.2 読み取り専用プロパティ3. ク...