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 相关文章推荐
csdn 论坛技术区平均给分功能
Nov 07 Javascript
js 返回时间戳所对应的具体时间
Jul 20 Javascript
Dom与浏览器兼容性说明
Oct 25 Javascript
Javascript 面试题随笔
Mar 31 Javascript
JavaScript实现在标题栏上显示当前日期的方法
Mar 19 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
实例代码详解jquery.slides.js
Nov 16 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
分享vue里swiper的一些坑
Aug 30 Javascript
vue项目引入字体.ttf的方法
Sep 28 Javascript
JS二级菜单不同实现方法分析【4种方法】
Dec 21 Javascript
vue3.0实现插件封装
Dec 14 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python里隐藏的“禅”
2014/06/16 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
九州传奇上机题
2014/07/10 面试题
创业计划书的内容步骤和要领
2014/01/04 职场文书
新学期校长寄语
2014/01/18 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
消防安全宣传标语
2014/06/07 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
银行竞聘报告范文
2014/11/06 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
中秋节晚会开场白
2015/05/29 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL