PR
スポンサーリンク

vm.$listenersについて

vm.$listenersは、Vue.jsのインスタンス(vm)のプロパティであり、親コンポーネントから子コンポーネントに渡されたすべてのイベントリスナーを含むオブジェクトです。

Vue.jsでは、親コンポーネントから子コンポーネントにデータやイベントを渡すことができます。親コンポーネントが子コンポーネントにイベントリスナーを渡す場合、v-onディレクティブを使って子コンポーネントにイベントをリッスンするためのメソッドをバインドします。これらのイベントリスナーは、vm.$listenersプロパティにまとめられます。

以下は、vm.$listenersを使用して子コンポーネント内で親から渡されたイベントリスナーを取得する例です。


// ParentComponent.vue
<template>
  <ChildComponent @custom-event="handleCustomEvent" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  methods: {
    handleCustomEvent() {
      console.log('Custom event handled in parent component');
    }
  }
}
</script>
// ChildComponent.vue
<template>
  <button @click="$emit('custom-event')">Click me</button>
</template>

<script>
export default {
  mounted() {
    console.log(this.$listeners); // This will log { 'custom-event': [Function] }
  }
}
</script>

上記の例では、親コンポーネントから子コンポーネントにcustom-eventというイベントリスナーが渡され、子コンポーネント内でvm.$listenersを介してアクセスされます。これにより、子コンポーネントが親から渡されたイベントリスナーを動的に操作することが可能になります。

コメント

タイトルとURLをコピーしました