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代码
Dec 15 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
jquery 插件学习(四)
Aug 06 Javascript
js制作的鼠标悬浮时产生的下拉框效果
Oct 27 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
May 18 Javascript
详解layui中的树形关于取值传值问题
Jan 16 Javascript
vue中子组件的methods中获取到props中的值方法
Aug 27 Javascript
js获取url页面id,也就是最后的数字文件名
Sep 25 Javascript
JavaScript流程控制(循环)
Dec 06 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
使用Apache的rewrite技术
2006/06/22 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
node.js中的path.join方法使用说明
2014/12/08 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
ubuntu中配置pyqt4环境教程
2017/12/27 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
python 从list中随机取值的方法
2020/11/16 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
中班中秋节活动反思
2014/02/18 职场文书
初一学生评语大全
2014/04/24 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电