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 チュートリアル

推薦する

MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明

ストアド関数ストアド関数とは: SQL コードの一部をカプセル化し、特定の関数を完了して、結果を返し...

シンプルな画像ドラッグ効果を実現する js

この記事では、簡単な画像ドラッグ効果を実現するためのjsの具体的なコードを参考までに紹介します。具体...

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

Javascript における非同期待機の詳細な理解

この記事では、async/await がすべての JavaScript 開発者にとって非同期プログラ...

MySQL クエリ キャッシュとバッファ プール

1. キャッシュ - クエリキャッシュ次の図は、MySQL 公式サイトから提供されています: MyS...

Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...

Centos7.5 構成 Java 環境のインストール Tomcat の説明

Tomcat は Java 言語をベースにした Web サーバー ソフトウェアです。この記事では主に...

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...

MySQLの左結合と内部結合について簡単に説明します

序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...

MySQL のスローログオンラインの問題と最適化ソリューション

MySQL スロー ログは、MySQL DBA やその他の開発および運用担当者が細心の注意を払う必要...

Python の MySQL データベース LIKE 演算子の詳細な説明

LIKE 演算子は、列内の指定されたパターンを検索するため、WHERE 句で使用されます。文法: 列...

フレックスレイアウトでコンテナ内のコンテンツを維持するためのソリューションの詳細な説明

モバイル側では、フレックスレイアウトが非常に便利です。デバイスの幅に応じてコンテナの幅を自動的に調整...

Nginx 500 内部サーバーエラーの解決方法

今日、Nginxを使っていたら500エラーが発生しました。エラーコードを検索してみんなに共有しました...

CSS3の3D効果を使って立方体を作成する

CSS3 の 3D 効果を使用して立方体を作成する方法を学ぶと、3D シーンの回転と変位のプロパティ...