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 03 Javascript
在网页里看flash的trace数据的js类
Jan 10 Javascript
常用简易JavaScript函数
Apr 09 Javascript
javawscript 三级菜单的实现原理
Jul 01 Javascript
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
jquery下checked取值问题的解决方法
Aug 09 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
Jun 24 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
基于Jquery实现键盘按键监听
May 11 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
遭遇php的in_array低性能问题
2013/09/17 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
Bootstrap插件全集
2016/07/18 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
使用python实现tcp自动重连
2017/07/02 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
python区块及区块链的开发详解
2019/07/03 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
应付会计岗位职责
2013/12/12 职场文书
找工作最新求职信
2013/12/22 职场文书
读书活动实施方案
2014/03/10 职场文书
升旗仪式主持词
2014/03/19 职场文书
中职生自荐信范文
2014/06/15 职场文书
2015新学期家长寄语
2015/02/26 职场文书
化妆品促销活动总结
2015/05/07 职场文书
 Python 中 logging 模块使用详情
2022/03/03 Python