Vue3 での provide と injection の使用

Vue3 での provide と injection の使用

1. provideとinjectの説明

Provide と Inject により、ネストされたコンポーネント間でデータを転送できます。
両方の機能はセットアップ機能で使用されます。
親コンポーネントは provide を使用してデータを下位に渡します。
子コンポーネントは inject を使用して、親コンポーネントから渡されたデータを取得します。
以下の点に注意してください。
1==>provideはデータを下方向にのみ渡すことができます
2==>provideとinjectを使用する場合は、vueからインポートする必要があります

2. provideとinjectの使用

2つのコンポーネントサブコンポーネントErZi.vueを作成します。
孫コンポーネント SunZI.vue
親コンポーネントから子コンポーネントにデータを渡します。
すると、息子と孫の両方のコンポーネントがそれを受け取ります。
そしてそれをビューに表示する

3. 親コンポーネント

<テンプレート>
  <erzi-com></erzi-com>
</テンプレート>
<script lang="ts">
「../components/ErZi.vue」からErZiをインポートします。
「vue」から{provide, ref}をインポートします
エクスポートデフォルト{
  名前:"概要",
  コンポーネント:{
    'erzi-com':エルジ
  },
  設定(){
    giveSunziData=ref({
       100、
       高さ:50,
       bg:'ピンク'
    })
    // 最初のパラメータは共有データの名前です (giveSunzi)
    // 2 番目のパラメータは共有データ (giveSunziData) です
    提供する('Sunzi'、SunziDataを提供する)
  }
}
</スクリプト>

親コンポーネントは子コンポーネントにオブジェクトを渡す
provideはsetUpの組み合わせAPIで使用されます
provide の使用方法:
提供 ('共有データ名'、共有値)
共有値は文字列、数値、オブジェクト、配列になります

サブコンポーネントが受信中の場合。
let xxx=inject('共有データ名');

4. 息子コンポーネント

<テンプレート>
    <div>
      <h2>息子のコンポーネント</h2>
      <div>値を取得: {{getFaytherData}}</div>
    </div>
    <hr/>
    <sun-con></sun-con>
</テンプレート>
<script lang="ts">
'vue' から defineComponent をインポートし、 inject します。
「./SunZI.vue」からSunZIをインポートします。
エクスポートデフォルトdefineComponent({
  名前: 'ErZi'、
   コンポーネント:{
     'sun-con':SunZI
   },
    設定(){
      getFaytherData = inject('giveSunzi'); を取得します。
      戻り値: getFaytherData
    }
});
</スクリプト>

5. 孫コンポーネント

<テンプレート>
    <div>
         <h2>孫コンポーネント</h2>
         <div>取得された値は {{getYeYeData} です。}</div>
    </div>
</テンプレート>
<script lang="ts">
'vue' から {defineComponent,inject} をインポートします。
エクスポートデフォルトdefineComponent({
   設定(){
     getYeYeData=inject('giveSunzi'); を取得します。
    戻り値: getYeYeData
   }
});
</スクリプト>

6. レンダリング

7. 親コンポーネントは複数のプロバイダーを渡すことができますか?

場合によっては、親コンポーネントが複数のプロバイダーを渡す必要がある場合があります。
データを分離しておきたいからです。
このとき、複数のrovidesを渡す必要があります。
練習すれば、親コンポーネントは複数のルーターを通過できるようになります。 ! ! !
これには問題はありません。

ただし、個人的にはこのアプローチはお勧めしません。データを渡すときに、一度に複数のデータを組み立てることができます。
組み立て後、転送

8. rovideとinjectの参照シナリオ

親コンポーネントが子コンポーネントに配布するデータが大量にある場合、
provide と inject を使用できます。

これで、vue3 での provide と inject の使用に関するこの記事は終了です。vue provide と inject の使用に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue3 における Provide/Inject の実装原則の共有
  • Vue3 における provide と inject の使用法と原則
  • Vue3のprovideとinjectの使用に関するヒントを共有する

<<:  Tomcatディレクトリ構造の詳細な説明

>>:  MySQL 8.x msi バージョンのインストール チュートリアル (画像とテキスト付き)

推薦する

mysql8.0.20 のデータディレクトリを移行する方法

mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...

MySql 5.7.17 winx64 のインストールと設定に関する詳細なチュートリアル

1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカウ...

LINUX での IPTABLES ファイアウォールの基本的な使用方法のチュートリアル

序文パブリック IP を持つ本番 VPS の場合、必要なポートのみが開かれ、IP とポートを制御する...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

MySQL インデックス プッシュダウン (ICP) の簡単な理解と例

序文Index Condition Pushdown (ICP) は、MySQL 5.6 の新機能で...

jsはテーブルの追加と削除の操作を動的に実装します

この記事の例では、jsでテーブルを動的に追加および削除するための具体的なコードを参考までに共有してい...

Linux ログ表示方法 6 つのまとめ

バックエンド プログラマーは、さまざまな場所で Linux を扱います。Linux ログの読み方がわ...

React.FCとReact.Componentの使用に関する簡単な説明

目次1. React.FC<> 2. クラスxxはReact.Componentを拡張し...

react-color を使用してフロントエンドのカラーピッカーを実装する方法

背景次の図に示すように、 react-color を使用してフロントエンド インターフェースのカラー...

CentOS7 (YUM) での MySQL 5.7 のインストールと設定のチュートリアル

インストール環境: CentOS7 64ビット、MySQL5.7 1. YUMソースを設定するMyS...

Windows Server 2016 に Docker をインストールする方法

最近、Microsoft は Docker をネイティブにサポートする Windows Server...

Vueのログインとログアウトの詳細な説明

目次ログインビジネスプロセスログイン機能の実装要約するまず、エフェクトの実装プロセスを見てみましょう...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...

Vue+SSMは画像アップロードのプレビュー効果を実現します

現在の要件は、ファイルのアップロード ボタンがあることです。ボタンをクリックすると、アップロードする...

MySQLデータの同時更新を処理する方法

UPDATE はロックしますか?以下のような場合、SQL文はロックされますか? テーブル1を更新しま...