ホームページ > 記事 > ウェブフロントエンド > vue の親コンポーネントと子コンポーネント間の相互呼び出しの実装
今回はvueの親コンポーネントと子コンポーネントが相互に呼び出す際の注意事項について紹介します。実際のケースを見てみましょう。
シナリオ:
Uploadattachments のサブコンポーネントが親コンポーネントに導入されます: コンポーネントをクリックして対応する画像をそれぞれアップロードすると、サブコンポーネントの内部ループで複数のモジュールを作成できます
親コンポーネントは配列の子を渡します コンポーネントはループしてさまざまなコンポーネント モジュールを作成し、すべての イベント は子コンポーネント内にあります
親コンポーネントの上部には画像のアップロード ボタンもあります。画像をアップロードすると、最初のモジュールに画像が表示されます:
アイデア: 親コンポーネントのボタンをクリックして、子コンポーネントのアップロード メソッドをトリガーします:
呼び出す子コンポーネントで ref="refName",
父组件的方法中用this.$refs.refName.method
を定義します。子コンポーネントのメソッド
子コンポーネントでアップロードを処理するメソッド:
fileClick(index) { console.log('子组件的fileClick被调用了') console.log('index: '+index) // this.aaa(); if(!this.fileInfor[index].imgUrl){ //如果当前框里没有图片,则实现上传 document.getElementsByClassName('upload_file')[index].click(); } },
親コンポーネントのテンプレート
<template> <x-button type="submit" class="custom-primary" @click.native="xiechengUpload">上传图片</x-button> <up-load :fileInformation="fileInformation" ref="uploadRef"></up-load> </template>
親コンポーネント メソッドでメソッドを定義し、対応するインデックス値を渡します。
Upload(){ // console.log('父组件的xiechengUpload被调用了') this.$refs.uploadRef.fileClick(0); },
このとき、アップロード ボタンを使用して、サブコンポーネントの最初のモジュールに画像を挿入します。
サブコンポーネントのイベントを呼び出す Vue 親コンポーネントを見てみましょう
Vue 親コンポーネントは、子コンポーネントにイベントを渡したり、イベントを呼び出したりします
データ (props) の受け渡しについてではなく、Vue 2.0 に適用できます
方法 1: 子コンポーネントは親コンポーネントによって送信されたメソッドをリッスンします
方法 2: 親コンポーネントがサブコンポーネントのメソッドを呼び出す
サブコンポーネント:
export default { mounted: function () { this.$nextTick(function () { this.$on('childMethod', function () { console.log('监听成功') }) }) }, methods { callMethod () { console.log('调用成功') } } }
Parentコンポーネント:
<child ref="child" @click="click"></child> export default { methods: { click () { this.$refs.child.$emit('childMethod') // 方法1 this.$refs.child.callMethod() // 方法2 }, components: { child: child } }
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
axios 投稿リクエストを送信し、画像フォームを送信する手順の詳細な説明
以上がvue の親コンポーネントと子コンポーネント間の相互呼び出しの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。