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 相关文章推荐
Node.js中require的工作原理浅析
Jun 24 Javascript
使用JavaScript链式编程实现模拟Jquery函数
Dec 21 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
Bootstrap实现input控件失去焦点时验证
Aug 04 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
JavaScript中双符号的运算详解
Mar 12 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
JS实现横向轮播图(初级版)
Jun 24 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
JavaScript多种图形实现代码实例
Jun 28 Javascript
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
javascript document.compatMode兼容性
2010/02/23 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
AngularJs 常用的过滤器
2017/05/15 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python读取图片属性信息的实现方法
2016/09/11 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
如何基于Python实现自动扫雷
2020/01/06 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
业务员岗位职责
2013/11/16 职场文书
建材业务员岗位职责
2013/12/08 职场文书
大学生工作求职信
2014/06/23 职场文书
工作收入证明模板
2014/10/10 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
优秀党员先进材料
2014/12/18 职场文书
阿凡达观后感
2015/06/10 职场文书
田径运动会广播稿
2015/08/19 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python