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系列(43):设计模式之状态模式详解
Mar 04 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
Vue自定义指令介绍(2)
Dec 08 Javascript
bootstrap提示标签、提示框实现代码
Dec 28 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
vue实现在线学生录入系统
May 30 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在文件指定行中写入代码的方法
2012/05/23 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
简单的Python的curses库使用教程
2015/04/11 Python
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
行政部岗位职责范本
2014/03/13 职场文书
汽车维修求职信
2014/06/15 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
个人投资合作协议书
2014/10/12 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
单位实习介绍信
2015/05/05 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书