Vue子组件向父组件通信与父组件调用子组件中的方法


Posted in Javascript onJune 22, 2018

子组件向父组件通信

子组件的button按钮绑定点击事件,事件方法名为sendToParent(),

该方法在子组件的methods中声明,实现功能this.$emit('cus-event',this.msg);

在父组件引入子组件,并给cus-event事件绑定doAction($event)方法,该方法中this.msg = e;console.log(e),

而msg已经在data中声明,其值为”子级消息”,故最终的输出结果为: 展示父级接收到的消息:子级消息

父组件调用子组件中的方法

点击父组件的button按钮,触发了click事件指向的useChild方法[该方法的行为是输出”父级消息”],

useChild方法在父组件的中的methods中声明,调用子组件中的方法,并传入参数str,即this.$refs.child1.getMsg(str);

而getMsg方法已经在子组件的methods中声明,其行为是console.log('子级组件收到父级的内容',str);,

所以,最终的输出结果为: 子级组件收到父级的内容 父级消息

代码示例(结合上面的分析理解代码)

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>子向父通信</title> 
  <style> 
    #app { 
      border: 1px solid blue; 
      width: 500px; 
      padding: 20px; 
      margin: auto; 
      border-radius: 8px; 
      background: fuchsia; 
    } 
    #wrapper { 
      border: 1px solid red; 
      width: 400px; 
      padding: 20px; 
      border-radius: 8px; 
      background: yellowgreen; 
      margin-top: 20px; 
    } 
  </style> 
  <script src="https://cdn.jsdelivr.net/npm/vue"></script> 
</head> 
<body> 
  <div id="app"> 
    <!-- 父组件 --> 
    <h1>这是父组件</h1> 
    <p>展示父级接收到的消息:{{msg}}</p> 
    <button @click="useChild(szStr)">调用子组件的方法</button> 
     <!-- cus-event为子组件自定义的事件名; doAction($event)为父组件的事件,参数$event不可少也不可写成其他--> 
    <!-- ref表示组件的别名 --> 
    <child @cus-event="doAction($event)" ref="child1"></child> 
  </div> 
</body> 
</html> 
<template id="child"> 
  <div id="wrapper"> 
    <!-- 子组件 --> 
    <h2>这是子组件</h2> 
    <button @click="sendToParent">向父组件发消息</button> 
  </div> 
</template> 
<script> 
  let child = { 
    template: '#child', 
    data() { 
      return { 
        msg: '子级消息' 
      }; 
    }, 
    methods: { 
      sendToParent() { 
        // 子组件只管发送消息,其中cus-event为自定义事件名(事件名不能写成驼峰法,多个单词用-连接),this.msg为要传递的参数。 
        this.$emit('cus-event', this.msg); 
      }, 
      getMsg(str) { 
        console.log('子级组件收到父级的内容', str); 
      } 
    } 
  }; 
  // 注意: .$mount('#app')跟实例内部el: '#app'是等价的 
  new Vue({ 
    data: { 
      msg: '', 
      szStr:'父级消息' 
    }, 
    components: { 
      child 
    }, 
    methods: { 
      doAction(e) { 
        console.log(this); 
        console.log(e); 
        this.msg = e; 
      }, 
      useChild(str) { 
        // 调用子组件的方法 
        // console.log(this); 
        // console.log(this.$refs); 
        // this.$refs.child1得到的子组件实例 
        this.$refs.child1.getMsg(str); 
      } 
    } 
  }).$mount('#app'); 
</script>

效果图

Vue子组件向父组件通信与父组件调用子组件中的方法

总结

以上所述是小编给大家介绍的Vue子组件向父组件通信与父组件调用子组件中的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 对象是否存在判断
Jul 15 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
js使用递归解析xml
Dec 12 Javascript
浅谈Jquery核心函数
Jun 18 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
Javascript中click与blur事件的顺序详析
Apr 25 Javascript
微信小程序获取用户openId的实现方法
May 23 Javascript
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 #Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 #Javascript
使用vue-infinite-scroll实现无限滚动效果
Jun 22 #Javascript
vue中实现左右联动的效果
Jun 22 #Javascript
JS实现关键词高亮显示正则匹配
Jun 22 #Javascript
JS获取指定月份的天数两种实现方法
Jun 22 #Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 #Javascript
You might like
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
php判断是否为json格式的方法
2014/03/04 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
详细讲解JS节点知识
2010/01/31 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python如何生成xml文件
2020/06/04 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
如何一键升级Python所有包
2020/11/05 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
家电业务员岗位职责
2014/03/10 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
公司辞职信模板
2015/05/13 职场文书
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS