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 相关文章推荐
比较详细的javascript对象的property和prototype是什么一种关系
Aug 06 Javascript
JQuery打造PHP的AJAX表单提交实例
Nov 03 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
JavaScript如何自定义trim方法
Jul 28 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 Javascript
BootStrap modal模态弹窗使用小结
Oct 26 Javascript
vue.js的安装方法
May 12 Javascript
Vue实现web分页组件详解
Nov 28 Javascript
在vue项目中集成graphql(vue-ApolloClient)
Sep 08 Javascript
微信小程序wxml列表渲染原理解析
Nov 27 Javascript
ant design实现圈选功能
Dec 17 Javascript
JavaScript实现简单的弹窗效果
May 19 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
php smarty的预保留变量总结
2008/12/04 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
php数据访问之增删改查操作
2016/05/09 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
js导出txt示例代码
2014/01/14 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
python实现点对点聊天程序
2018/07/28 Python
opencv实现简单人脸识别
2021/02/19 Python
Python笔记之facade模式
2019/11/20 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
一文读懂Python 枚举
2020/08/25 Python
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
EJB的几种类型
2012/08/15 面试题
职称自我鉴定
2013/10/15 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
结婚保证书
2015/01/16 职场文书
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python