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

推薦する

MySQL で置換操作を使用したときにデータ損失が発生する問題の解決策

序文同社の開発者は、データの更新時に replace into ステートメントを使用していました。不...

docker を使用して Linux 環境に Springboot パッケージをデプロイするチュートリアル

springboot には tomcat サーバーが組み込まれているため、jar パッケージにパッケ...

MySQLデータベースの増分バックアップのアイデアと方法

MySQL データベースの増分バックアップを実行するには、データベース構成ファイル /etc/my....

Windows での自動展開に Jenkins を使用するチュートリアル図

今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...

Mysql 5.7.17 をインストールした後、MySQL にログインするチュートリアル

mysql-5.7.17 のインストールについては記事の下部で紹介されているので、参考にしてください...

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

この記事は、参考のためにMySQL 8.0.16のインストールグラフィックチュートリアルを記録してい...

react-diagram シリアル化 Json 解釈 ケース分析

このドキュメントの目的はreact-diagramフレームワーク モデルの Json シリアル化を説...

子コンポーネントを通じて親コンポーネントのプロパティを変更するための Vue のさまざまな実装方法

目次序文一般的な方法1. 親コンポーネントを介して子コンポーネントの発行イベントをリッスンしてpro...

MySQLでorder byを使用せずにランキングを実装する3つの方法のまとめ

ビジネスを想定: 2位の従業員の給与情報を見るデータベースを作成する emps が存在する場合はデー...

Vue のループフォーム項目例の詳細な説明

場合によっては、ユーザーがボタンをクリックして同様のフォームを追加し、クリックごとに 1 回追加でき...

mysql の追加、削除、変更、クエリの基本ステートメント

文法以下は、MySQL テーブルにデータを挿入するための INSERT INTO コマンドの一般的な...

Windows (x86、64 ビット) で MySQL 5.7.17 無料インストール バージョンをアップグレードするための詳細なチュートリアル

Laravel 5.4 のデフォルトの utf8mb64 文字エンコーディングをサポートするには、M...

Vue3 ミックスインの使い方

目次1. mixin の使い方は? 2. ミックスイン使用時の注意2.1. ミックスイン オブジェク...

空のパスがページのパフォーマンスに与える影響に対する解決策

数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...

MySQLのグローバルロックとテーブルロックに関する詳細な理解

序文ロックの範囲に応じて、MySQL のロックは、グローバル ロック、テーブル ロック、行ロックに大...