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 を実装する方法

推薦する

Ubuntu ブート自動起動サービス設定

Ubuntu でサービスを作成し、自動的に起動する方法: 1. [/lib/systemd/syst...

Docker のインストールと構成コマンドのコード例

Dockerのインストール依存パッケージをインストールする sudo yum install -y ...

いくつかのMySQL更新操作のケース分析

目次ケーススタディアカウント残高を更新する直接更新楽観的ロック方式ロックフリーソリューションキューイ...

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

MySQL インデックス失敗の原理

目次1. インデックス失敗の理由2. インデックスの秩序が崩れる状況を見てみましょう。 - インデッ...

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

ローカル yum ソースの設定、国内 yum ソースの設定、epel ソースの設定を行う Linux の手順

1. ローカルyumソースを設定する1. ISOイメージをマウントする マウント -o loop /...

クロスドメイン js フロントエンドの 8 つの実装ソリューション

目次1. jsonp クロスドメイン2. document.domain + iframe クロスド...

JS WebSocketを使用して簡単なチャットを実装する方法

目次ショートポーリングロングポーリングウェブソケットコミュニケーションの原則シンプルな1対1チャット...

npm グローバル モジュールのデフォルトのインストール パスを変更するためにノードのインストールをカスタマイズする手順

node を D ドライブにインストールしましたが、C ドライブのスペースを占有したくなかったため、...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

HTML でカスタム画像を使用してチェックボックスを表示する方法

チェックボックスの使用を実装するために画像を使用する必要がある場合は、それを使用して実装できます。実...

Docker-compose を使用して ELK クラスターを構築する方法

すべてのオーケストレーション ファイルと構成ファイルは、私の Github からアクセスできます。構...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...

Vue印刷機能を実装する2つの方法の概要

方法1: npm経由でプラグインをインストールする1. npm install vue-print-...