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 request函数 用来获取url参数
May 17 Javascript
javascript 学习笔记(一)DOM基本操作
Apr 08 Javascript
document.getElementById介绍
Sep 13 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
May 07 Javascript
使用jquery操作session方法分享
Jan 22 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
jQuery获取select选中的option的value值实现方法
Aug 29 Javascript
Angularjs 动态添加指令并绑定事件的方法
Apr 13 Javascript
Angular.JS通过指令操作DOM的方法
May 10 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
jQuery pjax 应用简单示例
Sep 20 jQuery
vue的keep-alive中使用EventBus的方法
Apr 23 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
967 个函式
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
Php获取金书网的书名的实现代码
2010/06/11 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
php抽象类用法实例分析
2015/07/07 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
Python学习小技巧之列表项的拼接
2017/05/20 Python
python计算列表内各元素的个数实例
2018/06/29 Python
python 实现倒排索引的方法
2018/12/25 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
2019年.net常见面试问题
2012/02/12 面试题
环境工程毕业生自荐信
2013/11/17 职场文书
毕业生评语大全
2015/01/04 职场文书
2015年材料员工作总结
2015/04/30 职场文书
观后感的写法
2015/06/19 职场文书
经典祝酒词大全
2015/08/12 职场文书
员工工作心得体会
2019/05/07 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers