vue 调用子组件方法失败_vue 父组件调用子组件方法及事件

本文介绍了在Vue中,父组件如何调用子组件的方法以及触发子组件事件。通过设置子组件的ref属性,然后在父组件中使用this.$refs.refName.method来调用子组件的方法。此外,还探讨了子组件监听父组件发送的方法和父组件直接调用子组件方法的两种方式,提供了一个完整示例。
摘要由CSDN通过智能技术生成

情景:

父组件中引入上传附件的子组件:点击组件可以分别上传对应要求的图片,子组件内部循环可创建多个模块.

父组件传入数组子组件循环来创建不同的组件模块,所有事件都在子组件内部.

be50361dca6919e8f9df12f679e3715b.png

父组件页面的上方同时有一个上传图片按钮上传图片后会显示在第一个模块:

fd4aa558c0b6d0028a5cc15bc86ba679.png

设想思路:点击父组件中的按钮触发子组件中上传方法:

子组件上定义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

上传图片

父组件method中定义方法,同时传入相应的index值. Upload(){

// console.log('父组件的xiechengUpload被调用了')

this.$refs.uploadRef.fileClick(0);

},

此时就可以通过上传按钮将图片放到子组件的第一个模块中了.

下面看下Vue父组件调用子组件事件

Vue父组件向子组件传递事件/调用事件

不是传递数据(props)哦,适用于 Vue 2.0

方法一:子组件监听父组件发送的方法

方法二:父组件调用子组件方法

子组件: export default {

mounted: function () {

this.$nextTick(function () {

this.$on('childMethod', function () {

console.log('监听成功')

})

})

},

methods {

callMethod () {

console.log('调用成功')

}

}

}

父组件:

export default {

methods: {

click () {

this.$refs.child.$emit('childMethod') // 方法1

this.$refs.child.callMethod() // 方法2

},

components: {

child: child

}

}

总结

以上所述是小编给大家介绍的vue 父组件调用子组件方法及事件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对聚米学院网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值