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监听鼠标事件控制textarea输入字符串的个数
Sep 29 Javascript
JSON取值前判断
Dec 23 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
在JavaScript中如何解决用execCommand(
Oct 19 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
JavaScript实现点击按钮就复制当前网址
Dec 14 Javascript
JQuery之proxy实现绑定代理方法
Aug 01 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
Oct 08 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
浅谈发布订阅模式与观察者模式
Apr 09 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
Feb 06 Javascript
Vue 根据条件判断van-tab的显示方式
Aug 03 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
使用 php4 加速 web 传输
2006/10/09 PHP
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python多线程编程方式分析示例详解
2013/12/06 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python中cPickle类使用方法详解
2018/08/27 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
python的flask框架难学吗
2020/07/31 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
职位说明书范文
2014/05/07 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
python游戏开发之pygame实现接球小游戏
2022/04/22 Python