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 相关文章推荐
ejs v9 javascript模板系统
Mar 21 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
Vuex之理解Store的用法
Apr 19 Javascript
js禁止浏览器的回退事件
Apr 20 Javascript
一步步教你利用Canvas对图片进行处理
Sep 19 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
新手入门js闭包学习过程解析
Oct 08 Javascript
nginx部署多个vue项目的方法示例
Sep 06 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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
PHP静态文件生成类实例
2014/11/29 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP线程的内存回收问题
2016/07/08 PHP
php微信开发之图片回复功能
2018/06/14 PHP
调试php程序的简单步骤
2019/10/04 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
javascript闭包入门示例
2014/04/30 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
python tornado修改log输出方式
2019/11/18 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python 常见的反爬虫策略
2020/09/27 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
写给爸爸的道歉信
2014/01/15 职场文书
如何写自我鉴定
2014/03/19 职场文书
公司欠款证明
2015/06/24 职场文书
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android