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 prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
Package.js  现代化的JavaScript项目make工具
May 23 Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
js转化毫秒为时间格式代码
Apr 10 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
JavaScript判断数字是否为质数的方法汇总
Jun 02 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
JS如何在不同平台实现多语言方式
Jul 16 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 Javascript
Vue使用Ref跨层级获取组件的步骤
Jan 25 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
基于JSON数据格式详解
2017/08/31 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
用Python实现命令行闹钟脚本实例
2016/09/05 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
python如何基于redis实现ip代理池
2020/01/17 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
婚礼主持结束词
2014/03/13 职场文书
市政管理求职信范文
2014/05/07 职场文书
效能监察建议书
2014/05/19 职场文书
2014年平安夜寄语
2014/12/08 职场文书
前台文员岗位职责
2015/02/04 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python