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

推薦する

Alibaba Cloud OSS アクセス権設定(RAM 権限制御)実装

シナリオmyBuket の static/material/ ディレクトリなど、Alibaba Cl...

要素UIポップアップコンポーネントをカプセル化する手順

el-dialogをコンポーネントとしてカプセル化するelement-ui を使用する場合、ポップア...

要素を中央に配置するための配置方法 (Web ページ レイアウトのヒント)

ブラウザウィンドウの中央に要素を配置する方法まず、コード ブロックを示します。すでにコードを理解して...

ウェブページのアクセス速度に関する主な問題と解決策

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

MySQL 5.7 データベースのインストール手順の個人的な要約

1.mysql-5.7.19-winx64.zip(これは無料のインストールバージョンで、約318 ...

Windows Server 2008 R2 リモート デスクトップのポート 3389 を変更する方法

Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...

Windows 64 ビットに MySQL を再インストールするチュートリアル (Zip バージョン、解凍バージョンの MySQL インストール)

MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...

Mongodb の GUID 表示の問題の詳細な分析

問題を見つける最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込...

Vue computedのキャッシュ実装原理の詳細な説明

目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...

Linuxにおけるselinuxの基本設定チュートリアルの詳細な説明

selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...

Vue 手書き読み込みアニメーション プロジェクト

ページが応答しない場合、白い画面が表示されないように、読み込みアニメーションを表示するのがユーザーフ...

js における関数のネストとクロージャの詳細

目次1. 範囲2. 関数の戻り値3. 関数のネスト4. 終了5. クロージャの実用的応用1. 内部変...

要素の円弧モーションを実現する CSS3 サンプルコード

CSS を使用して要素の円弧の動きを制御する方法CSS3 の新しい属性 transfrom トランジ...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

Zabbix パスワードをリセットする方法 (ワンステップ)

問題の説明長い間アカウントパスワードを入力して Zabbix にログインしていないため、管理者パスワ...