vue父组件点击触发子组件事件的实例讲解


Posted in Javascript onFebruary 08, 2018

最近在学习Vue父子组件通信的问题,刚好遇到一个父子之间事件事件派发与接收,在这里记录一下,在这里我使用的是ref

给子组件注册引用信息。官网是这样解释的

ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素; 如果用在子组件上,引用就指向组件实例:

父组件app.vue

<template>
  <div id="app">
  <!--父组件-->
  <input v-model="msg">
  <button v-on:click="notify">广播事件</button>
  <!--子组件-->
  <popup ref="child" ></popup>
  </div>
 </template>
 <script>
  import popup from '@/components/popup'
  export default {
  name: 'app',
  data: function () {
   return {
   msg: ''
   }
  },
  components: {
   popup
  },
  methods: {
   notify: function () {
   if (this.msg.trim()) {
    this.$refs.child.parentMsg(this.msg)
   }
   }
  }
  }
 </script>
 <style>
  #app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
  }
 </style>

子组件popup.vue

<template>
   <div>
   <ul>
    <li v-for="item in messages">父组件输入了:{{item}}</li>
   </ul>
   </div>
  </template>
  <style>
   body {
    background-color: #ffffff;
   }
  </style>
  <script>
  export default{
   name: 'popup',
   data: function () {
   return {
    messages: []
   }
   },
   methods: {
   parentMsg: function (msg) {
    this.messages.push(msg)
   }
   }
  }
  </script>

我把这个实例分为几个步骤解读:

1、父组件的button元素绑定click事件,该事件指向notify方法

2、给子组件注册一个ref="child"

3、父组件的notify的方法在处理时,使用了$refs.child把事件传递给子组件的parentMsg方法,同时携带着父组件中的参数msg

4、子组件接收到父组件的事件后,调用了parentMsg方法,把接收到的msg放到message数组中

运行结果如下:

vue父组件点击触发子组件事件的实例讲解

vue父组件点击触发子组件事件的实例讲解

以上这篇vue父组件点击触发子组件事件的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
js常用自定义公共函数汇总
Jan 15 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
Oct 25 Javascript
JS多物体实现缓冲运动效果示例
Dec 20 Javascript
使用gulp搭建本地服务器并实现模拟ajax
Apr 05 Javascript
关于vue的语法规则检测报错问题的解决
May 21 Javascript
JavaScript防止全局变量污染的方法总结
Aug 02 Javascript
JS 自执行函数原理及用法
Aug 05 Javascript
JavaScript实现多文件下载方法解析
Aug 07 Javascript
在vue-cli创建的项目中使用sass操作
Aug 10 Javascript
vue中实现在外部调用methods的方法(推荐)
Feb 08 #Javascript
10 种最常见的 Javascript 错误(频率最高)
Feb 08 #Javascript
Vue组件通信的四种方式汇总
Feb 08 #Javascript
Vue Socket.io源码解读
Feb 07 #Javascript
原生JavaScript实现的简单放大镜效果示例
Feb 07 #Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 #Javascript
Vue Element使用icon图标教程详解(第三方)
Feb 07 #Javascript
You might like
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP音乐采集(部分代码)
2007/02/14 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
php的memcached客户端memcached
2011/06/14 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
关于php开启错误提示的总结
2019/09/24 PHP
MSN消息提示类
2006/09/05 Javascript
js jquery做的图片连续滚动代码
2008/01/06 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
小学生作文评语
2014/04/18 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
工伤事故证明
2014/10/20 职场文书
建国大业观后感600字
2015/06/01 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
素质教育学习心得体会
2016/01/19 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS