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 相关文章推荐
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
May 12 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
Apr 14 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
JS立即执行的匿名函数用法分析
Nov 04 Javascript
js制作提示框插件
Dec 24 Javascript
vue-cropper插件实现图片截取上传组件封装
May 27 Vue.js
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
PHP音乐采集(部分代码)
2007/02/14 PHP
PHP 木马攻击防御技巧
2009/06/13 PHP
php经典算法集锦
2015/11/14 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
PHP7修改的函数
2021/03/09 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
python实现发送邮件及附件功能
2021/03/02 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
python 获取图片分辨率的方法
2019/01/08 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
使用Python pip怎么升级pip
2020/08/11 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
路政管理专业推荐信
2013/11/11 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
中式婚礼主持词
2014/03/13 职场文书
乒乓球比赛通知
2015/04/27 职场文书
高一化学教学反思
2016/02/22 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript