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处理VBArray的函数使用说明
May 11 Javascript
简单实用jquery版三级联动select示例
Jul 04 Javascript
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
Nov 28 Javascript
7个jQuery最佳实践
Jan 12 Javascript
angular实现图片懒加载实例代码
Jun 08 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
JavaScript实现封闭区域布尔运算的示例代码
Jun 25 Javascript
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
微信小程序实现定位及到指定位置导航的示例代码
Aug 20 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导出Excel实例讲解
2016/01/24 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
django框架模板语言使用方法详解
2019/07/18 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
python 用struct模块解决黏包问题
2020/11/07 Python
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
元旦趣味活动方案
2014/08/22 职场文书
走群众路线剖析材料
2014/10/09 职场文书
肖申克救赎观后感
2015/06/02 职场文书
关于python爬虫应用urllib库作用分析
2021/09/04 Python