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实现单一html页面两套css切换代码
Apr 11 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
node.js中的console.dir方法使用说明
Dec 10 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
JS判断数组那点事
Oct 10 Javascript
微信小程序实现上传图片功能
May 28 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
Vue axios设置访问基础路径方法
Sep 19 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
Nov 17 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
详细解析Python中的变量的数据类型
2015/05/13 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
详解Python发送email的三种方式
2018/10/18 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
幼儿园家长评语
2014/02/10 职场文书
工作说明书范文
2014/05/07 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
2014年设计师工作总结
2014/11/25 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
民间借贷借条如何写
2015/05/26 职场文书
同意转租证明
2015/06/24 职场文书
2015年教师节感言
2015/08/03 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
Python机器学习之基础概述
2021/05/19 Python
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技