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利用初始化数据装配模版的实现代码
Nov 17 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
Sep 13 Javascript
理解javascript闭包
Dec 15 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
react学习笔记之state以及setState的使用
Dec 07 Javascript
Node.js 使用request模块下载文件的实例
Sep 05 Javascript
详解js获取video任意时间的画面截图
Apr 17 Javascript
vue实现移动端返回顶部
Oct 12 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 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 cli换行示例
2014/04/22 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
js模糊查询实例分享
2016/12/26 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
Python中生成Epoch的方法
2017/04/26 Python
python编程羊车门问题代码示例
2017/10/25 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
简单了解python代码优化小技巧
2019/07/08 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Python类中self参数用法详解
2020/02/13 Python
Python正则表达式学习小例子
2020/03/03 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
Java提供了哪些企业应用编程接口
2015/02/13 面试题
幼儿教师个人求职信范文
2013/09/21 职场文书
学校门卫工作职责
2013/12/07 职场文书
酒店执行总经理岗位职责
2013/12/15 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
婚礼新人答谢词
2015/01/04 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书