vue 父组件调用子组件方法及事件

网友投稿 709 2023-02-10


vue 父组件调用子组件方法及事件

情景:

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

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

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

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

子组件上定义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 父组件调用子组件方法及事件,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:eclipse部署tomcat服务器无法启动问题的解决方法
下一篇:Angular开发实践之服务端渲染
相关文章

 发表评论

暂时没有评论,来抢沙发吧~