ホームページ  >  記事  >  ウェブフロントエンド  >  vue の親コンポーネントと子コンポーネント間の相互呼び出しの実装

vue の親コンポーネントと子コンポーネント間の相互呼び出しの実装

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-11 13:40:091632ブラウズ

今回は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 サイトの他の関連記事に注目してください。

推奨読書:

vueで画像とファイルをアップロードする手順の詳細な説明

axios 投稿リクエストを送信し、画像フォームを送信する手順の詳細な説明

以上がvue の親コンポーネントと子コンポーネント間の相互呼び出しの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。