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 相关文章推荐
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
javascript:以前写的xmlhttp池,代码
May 18 Javascript
关于JS控制代码暂停的实现方法分享
Oct 11 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
Dec 31 Javascript
很酷的星级评分系统原生JS实现
Aug 25 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
js canvas实现放大镜查看图片功能
Jun 08 Javascript
对vue中methods互相调用的方法详解
Aug 30 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 Javascript
vue中配置scss全局变量的步骤
Dec 28 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
php自动注册登录验证机制实现代码
2011/12/20 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
2014/12/31 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
微信小程序开发摇一摇功能
2019/11/22 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
Python+Opencv识别两张相似图片
2020/03/23 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
《独坐敬亭山》教学反思
2014/04/08 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
基层党支部整改方案
2014/10/25 职场文书
2015年药店工作总结
2015/04/20 职场文书
律师函格式范本
2015/05/27 职场文书
高三毕业感言
2015/07/30 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
使用Python开发冰球小游戏
2022/04/30 Python