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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
Javascript this关键字使用分析
Oct 21 Javascript
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
ie支持function.bind()方法实现代码
Dec 27 Javascript
给js文件传参数(详解)
Jul 13 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
JavaScript实现数字数组按照倒序排列的方法
Apr 06 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 Javascript
vue mixins组件复用的几种方式(小结)
Sep 06 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
Jun 25 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
Apr 27 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
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
解析php中的escape函数
2013/06/29 PHP
twig里使用js变量的方法
2016/02/05 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
vue中如何使用ztree
2018/02/06 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
公司介绍信范文
2015/01/31 职场文书
杭白菊导游词
2015/02/10 职场文书
2015年项目经理工作总结
2015/04/30 职场文书