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 相关文章推荐
HTML页面如何象ASP一样接受参数
Feb 07 Javascript
非常漂亮的JS代码经典广告
Oct 21 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
Jun 16 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
Jun 19 Javascript
Vuex入门到上手教程
Jun 20 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 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 删除cookie和浏览器重定向
2009/03/16 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
百度地图api如何使用
2015/08/03 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
vue之数据交互实例代码
2017/06/20 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
python实现flappy bird小游戏
2018/12/24 Python
Django web框架使用url path name详解
2019/04/29 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
毕业生文员求职信
2013/11/03 职场文书
总经理助理职责
2014/02/04 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书