vue的父组件监听子组件触发的事件及传参,怎么再同时拿到事件对象?

父组件里打印监听的子组件参数,只有子组件传过来的参数啊,怎么拿到父组件监听函数的事件函数呢?想拿到事件函数上定义的自定义属性,求教

阅读 2.9k
2 个回答

如果是父取子的话,通过this.$refs获取子组件所有事件及data
如果子取父,父将自己provide后,在子组件inject后即可获取父组件所有事件及data

这是子组件B

<template>
  <div>
    <h2>我是B</h2>
    <el-button @click="childClick">testCallback</el-button>
  </div>
</template>
<script>
export default {
  name:'B',
  data () {
    return {
    };
  },
  methods: {
    childClick(event)  {
      let data = "这是来自子组件的问候~~";
      this.$emit('tofather',data,event);//把data和event都传给父组件。
    }
  }
};
</script>

这是父组件A

<template>
  <div>
    <h1>我是A</h1>
    <child @tofather="toFather"></child>
  </div>
</template>
<script>
import child from './B.vue'
export default {
  name:'A',
  components: {
    child
  },
  data () {
    return {
    };
  },
  methods: {
    toFather(data,event){//接收data和event
      console.log(data)
      console.log(event)
    }
  }
};
</script>

输出:
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题