Vue3 の父子値転送に関する簡単な説明

Vue3 の父子値転送に関する簡単な説明

父から息子へ:

1. 親コンポーネントのサブコンポーネントタグに、サブコンポーネントに渡されるデータ名 = "渡すデータ" を渡します。

ここでは、参考までに、親コンポーネントのデータを次のように定義します: fatherData 、

子コンポーネントが受信する必要があるデータは、sonData として定義されます。

// 親コンポーネント <テンプレート>
  <div class="about">
    {{父データ}}
    <!-- 父から息子へ-->
    <!-- 1. 親コンポーネントのサブコンポーネント タグで、次の内容を渡します: サブコンポーネントに渡されるデータ名 = "渡されるデータ" -->
    <children :sonData="父親のデータ"></children>
  </div>
</テンプレート>
 
<スクリプト>
「@/components/children」から子要素をインポートします。
「vue」から {defineComponent、reactive、toRefs } をインポートします。
エクスポートデフォルトdefineComponent({
  コンポーネント:{
    子供たち、
  },
名前:"について",
設定(){
  定数状態 = リアクティブ({
    父親データ: 「こんにちは」
  })
  戻る {
    ...toRefs(状態)
  }
}
 
})
</スクリプト>

2. サブコンポーネントは引き続きpropsを通じて受け取られ、テンプレートで使用されます。

ほとんどの場合、データは親コンポーネントから子コンポーネントに渡され、このデータに基づいて特定の機能またはリクエストデータが実行されます。

セットアップ フックでは、最初のパラメーター props は親コンポーネントから渡されたデータにアクセスできます。次に、関数内で、データは props を通じて操作されます。親コンポーネントから渡されたデータの名前。

セットアップ関数は、最初のパラメータとして props を受け取ります。props オブジェクトは応答性があります (一方向の親 -> 子)。watchEffect または watch は props の更新を監視し、応答します。 props オブジェクトを分解しないでください。そうすると、応答性が低下します。開発中、props オブジェクトはユーザー空間コードに対して不変であり、ユーザーが props を変更しようとすると警告がトリガーされます。

// サブコンポーネント <テンプレート>
  <div class="children">
    <!-- 3. サブコンポーネント テンプレートでの使用 -->
    {{sonData}}
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
名前:"子供",
// 2. サブコンポーネントは props:["sonData"] を通じて props を受け取ります。
  セットアップ(props){
    関数 childrenbut(){
      // props.sonData は親コンポーネントから渡されたデータにアクセスできます console.log(props.sonData);
    }
    戻る {
      子供たちだが
    }
  }
}
</スクリプト>

息子から父へ:

1. サブコンポーネントは、セットアップの2番目のパラメータcontext.emitを通じてイベントをトリガーし、子から親への伝達を実現します。

コンテキスト コンテキスト オブジェクト。

// サブコンポーネント <テンプレート>
  <div class="children">
    {{sonData}}
    <!-- 1. トリガーイベント-->
    <button @click="childrenbut">子コンポーネント ボタン</button>
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
名前:"子供",
  セットアップ(プロパティ、コンテキスト){
    関数 childrenbut(){
      console.log(コンテキスト);
      // 2. context.emit を使用して子から親にデータを渡します。 // 最初のパラメーターはメソッド名で、2 番目のパラメーターは渡されるデータです。context.emit("change",'world')
    }
    戻る {
      子供たちだが、
    }
  }
}
</スクリプト>

文脈は構造の形で記述することもできる

// サブコンポーネント <script>
エクスポートデフォルト{
名前:"子供",
  // 構造体を渡した後、emit を直接記述します {emit}
  セットアップ(props,{emit}){
    関数 childrenbut(){
      // context.emit を省略
      出力("change",'world')
    }
    戻る {
      子供たちだが、
    }
  }
}
</スクリプト>

要約する

vue3 では、親から子、子から親のいずれであっても、実際には vue2 と同じです。

考え方はほとんど同じですが、違いはvue3がパラメータを渡すためにさまざまなフックを呼び出す必要があることです。

以下もご興味があるかもしれません:
  • Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明
  • Vue 親子コンポーネントの相互値の転送と呼び出し
  • Vueの7つの値転送メソッドの詳細な説明
  • Vue の親子コンポーネントの値転送の落とし穴
  • vueの子コンポーネントと親コンポーネント間で値を渡す例
  • Vue 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明

<<:  Docker ベースの Selenium 分散環境の構築

>>:  MySQL インポート csv エラーの 4 つの解決策

推薦する

OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する

導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...

JavaScript/TypeScript で同時リクエスト制御を実装するためのサンプルコード

シナリオリクエストが 10 件あるが、同時リクエストの最大数は 5 件で、リクエスト結果が必要である...

表示または可視性によってHTML要素を非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...

WeChatアプレットのスクロールビューが左右にスライドできない問題を解決する方法

私は現在、自分自身の小さなプログラム プロジェクトに取り組んでいます。プロフェッショナルなフロントエ...

Vueエンジニアがカプセル化しなければならない埋め込み命令の知識のまとめ

目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...

Dockerイメージ作成の完全なプロセス

目次序文作成手順CentOSベースイメージを作成するコンテナを作成してカスタマイズするカスタムコンテ...

Nest.js 認証検証方法の例

目次0x0 はじめに0x1 RBAC 実装0x2 クレームベースの承認0x3 統合 CASL 0x4...

Linux の crw、brw、lrw などのファイル属性は何ですか?

ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...

Linux システムでのユーザー管理の概要

目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...

JavaScript 非同期プログラミングにおける Promise の初期の使用法の詳細な説明

1. 概要Promise オブジェクトは、ES6 で提案された非同期プログラミングの仕様です。非同期...

Windows10システムにスーパーセットをインストールする手順

Superset は、エレガントなインターフェースとデータ テーブルに基づく動的なデータ生成を主な機...

Vueデータ双方向バインディング実装方法

目次1. はじめに2. コードの実装2.1 目的分析2.2 実装プロセス2.2.1 エントリーコード...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

Vueモバイル端末に最適な適応ソリューションについての簡単な説明

序文: 最近の医療モバイル プロジェクトに基づいて、Vue はさまざまな画面のさまざまな画面サイズに...