Vue 親子コンポーネントの相互値の転送と呼び出し

Vue 親子コンポーネントの相互値の転送と呼び出し

1. 親が子コンポーネントに値を渡す

親コンポーネント:

<テンプレート>
  <div>
    <p class="father">父コンポーネント</p>
    <child:sid="id"></child>
  </div>
</テンプレート>

<スクリプト>
'./child' から子をインポートします
エクスポートデフォルト{
  コンポーネント:
    子供
  },
  データ() {
    戻る {
      id:'1234' // 親コンポーネントから子コンポーネントに渡される値}
  }
}
</スクリプト>

サブコンポーネント:

<テンプレート>
  <div>
    <p class="child">子コンポーネント</p>
    <p class="child">受け取った親コンポーネントの値は次のとおりです: {{ sid }}</p>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  小道具:{
    シド:{
      タイプ:文字列、
      デフォルト: '0'
    }
  },
  // プロパティ:["sid"],
  データ() {
   戻る { 

   } 
 } 
} 
</スクリプト>

例:

①sidはサブコンポーネントに渡される値です。「=」の前のsidはサブコンポーネントで受け入れられる変数名と一致している必要があることに注意してください。

② 子コンポーネントで props を使用して、入力値を受け入れます。オブジェクト型として記述したり、型とデフォルト値を指定したり、文字列として直接記述したりできます。

③サブコンポーネント内で直接使用することも、関数内でthis.sidを使用してアクセスすることもできます。

2. 子コンポーネントが親コンポーネントに値を渡す

親コンポーネント:

<テンプレート>
  <div>
    <p class="father">父コンポーネント</p>
   <p class="father">子コンポーネントの値を受け取ります: {{childSid}}</p>
    <child @passValue="親パス値"></child>
  </div>
</テンプレート>

<スクリプト>
'./child' から子をインポートします
エクスポートデフォルト{
  コンポーネント:
    子供
  },
  データ() {
    戻る {
      childSid:'' // 子コンポーネントの値を受け取る}
  },
  メソッド: {
    親パス値(データ) {
      this.childSid = データ;
    }
  }
}
</スクリプト>

サブコンポーネント:

<テンプレート>
  <div>
    <p class="child">子コンポーネント</p>
    <button @click="valueClick">値を渡す</button>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ() {
    戻る {
    }
  },
  メソッド: {
    値クリック() {
      これを$emit('passVaule',19)します
    }
  }
}
</スクリプト>

例:

① 子コンポーネントに$emitをトリガーするメソッドを指定します。最初のパラメータは、親コンポーネントが子コンポーネントバインディングに導入する関数名(「passVaule」)であり、2番目は渡される値です(19)

②親コンポーネントに関数をバインドし、親コンポーネントにバインドされた関数を呼び出し、その中の値に対して受信操作を実行する

3. 子コンポーネントが親コンポーネントのメソッドを呼び出す

親コンポーネント:

<テンプレート>
  <div>
    <p class="father">父コンポーネント</p>
    <child @funValue="親FunValue"></child>
  </div>
</テンプレート>

<スクリプト>
'./child' から子をインポートします
エクスポートデフォルト{
  コンポーネント:
    子供
  },
  データ() {
    戻る {
    }
  },
  メソッド: {
    親FunValue() {
      console.log('親コンポーネント内の関数が呼び出されます');
    }
  }
}
</スクリプト>

サブコンポーネント:

<テンプレート>
  <div>
    <p class="child">子コンポーネント</p>
    <button @click="funClick">親コンポーネントメソッドを呼び出す</button>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ() {
    戻る {
    }
  },
  メソッド: {
    funClick() {
      this.$emit('funVaule')
    }
  }
}
</スクリプト>

例:

①子から親に値を渡すのと似ていますが、値を渡すのではなく、親コンポーネントのバインドされた関数を呼び出します。

4. 親が子コンポーネントのメソッドを呼び出す

親コンポーネント:

<テンプレート>
  <div>
    <p class="father">父コンポーネント</p>
    <button @click="childClick">子コンポーネントメソッドを呼び出す</button>
    <child ref="mychild"></child>
  </div>
</テンプレート>

<スクリプト>
'./child' から子をインポートします
エクスポートデフォルト{
  コンポーネント:
    子供
  },
  データ() {
    戻る {
    }
  },
  メソッド: {
    子クリック() {
      this.$refs.mychild.testNum(1)
    }
  }
}
</スクリプト>

サブコンポーネント:

<テンプレート>
  <div>
    <p class="child">子コンポーネント</p>
</ボタン>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ() {
    戻る {
    }
  },
  メソッド: {
    testNum(データ) {
      console.log('子コンポーネントのメソッドが呼び出されました:', data);
    }
  }
}
</スクリプト>

例:

① 親コンポーネントで、インポートした子コンポーネントに ref="mychild" と記述します。Mychid は自身に定義されたインスタンス名です。

②関数内にthis.refs.mychild.testNum()と記述します。「testNum」は子コンポーネントで定義された関数名です。

③子コンポーネントは関数を定義し、親コンポーネントがそれを呼び出すようにします

④このメソッドは値を渡すこともできます。括弧内の値を渡すとサブコンポーネントがそれを受け取ります。

以上がVue親子コンポーネントの相互値転送と呼び出しの詳細です。Vue親子コンポーネントの値転送と呼び出しの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明
  • Vue の親子コンポーネントの値転送の落とし穴
  • Vue コンポーネントのマウントと親子コンポーネントの値の転送の例
  • Vueの親コンポーネントと子コンポーネント間で値を渡すと、マウントされたフック関数が一度しか実行されない問題が解決されます
  • Vue の親子コンポーネントの値転送と親子および子親メソッドをすばやく理解する
  • Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明

<<:  Ubuntu での MySQL へのリモート ログインのインストールと設定に関するチュートリアル

>>:  VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

推薦する

jsはブラウザを閉じるときにアカウントのログアウトを処理します

目次古典的なアプローチ質問その他の質問注意が必要な問題古典的なアプローチご存知のとおり、アカウントの...

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 パーレル # # https:/...

Unicode の数学記号の概要

数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...

HTML と CSS の基礎 (必読)

(1) HTML: ハイパーテキストマークアップ言語。主に「ヘッダー」と「ボディ」の2つの部分で構...

Linux ソースコードからのソケット (TCP) バインドの詳細な説明

目次1. 最も単純なサーバー側の例2. バインドシステムコール2.1、inet_bind 2.2、i...

サーバー上でjupyterノートブックを実行する問題を解決する

目次サーバーはjupyterノートブックを実行します仮想環境次にファイアウォールをオフにしますJup...

DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

Docker プライベートイメージライブラリDockerプライベートイメージライブラリとAlibab...

WEBAPP開発スキルのまとめ(モバイルWebサイト開発の注意点)

1. レスポンシブな Web を開発するには、ページを画面サイズに適応させる必要があります。前の記...

Mysqlトランザクション操作の失敗を解決する方法

Mysqlトランザクション操作の失敗を解決する方法トランザクションの原子性: トランザクションは、デ...

Linux サービス管理の 2 つの方法、service と systemctl の詳細な説明

1.サービスコマンドサービスコマンドは実際には/etc/init.dディレクトリに移動し、関連プログ...

Linux でスレッドを作成するための pthread_create の具体的な使用法

pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...

Zabbix redis 自動ポート検出スクリプトは json 形式を返します

自動検出を行う際には、ポートなどの情報を取得してjson形式で返すスクリプトが必ず存在します。Red...

nginx がアップストリーム アドレスにジャンプしない問題の解決方法

序文今日、nginx で非常に奇妙な問題に遭遇しました。フロントエンドの tomcat がページにジ...

MySQLの基礎知識学習ノート

データベースを表示show databases;データベースを作成するDATABASE データベース...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...