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


Posted in Javascript onMarch 29, 2018

情景:

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

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

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

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

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

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

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

<template>
  <x-button type="submit" class="custom-primary" @click.native="xiechengUpload">上传图片</x-button>

  <up-load :fileInformation="fileInformation" ref="uploadRef"></up-load>
</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('调用成功')
    }
  }
}

父组件:

<child ref="child" @click="click"></child>
export default {
  methods: {
   click () {
   this.$refs.child.$emit('childMethod') // 方法1
   this.$refs.child.callMethod() // 方法2
  },
  components: {
   child: child
  }
}

总结

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

Javascript 相关文章推荐
js每次Title显示不同的名言
Sep 25 Javascript
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
js实现音乐播放控制条
Sep 09 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
ZK中使用JS读取客户端txt文件内容问题
Nov 07 Javascript
vue改变循环遍历后的数据实例
Nov 07 Javascript
Ajax实现局部刷新的方法实例
Mar 31 Javascript
vue.js element-ui tree树形控件改iview的方法
Mar 29 #Javascript
Vue 源码分析之 Observer实现过程
Mar 29 #Javascript
vue 实现全选全不选的示例代码
Mar 29 #Javascript
Angular开发实践之服务端渲染
Mar 29 #Javascript
使用vue2实现购物车和地址选配功能
Mar 29 #Javascript
vue axios请求拦截实例代码
Mar 29 #Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 #Javascript
You might like
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
php封装的page分页类完整实例
2016/10/18 PHP
chrome原生方法之数组
2011/11/30 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
jquery.pager.js实现分页效果
2019/07/29 jQuery
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
python学习数据结构实例代码
2015/05/11 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
手机配件第一品牌:ZAGG
2017/05/28 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
心得体会开头
2014/01/01 职场文书
违纪检讨书2000字
2014/02/08 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
德能勤绩工作总结
2015/08/11 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
Java中try catch处理异常示例
2021/12/06 Java/Android