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 相关文章推荐
javascript 的Document属性和方法集合
Jan 25 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
Apr 14 Javascript
javascript学习笔记(八) js内置对象
Jun 19 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
Aug 27 Javascript
JavaScript判断文件上传类型的方法
Sep 02 Javascript
JavaScript将字符串转换成字符编码列表的方法
Mar 19 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
vue二级路由设置方法
Feb 09 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
Jun 05 Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 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
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
用JS实现选项卡
2020/03/23 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
什么是事务?为什么需要事务?
2012/01/09 面试题
岗位说明书怎么写
2014/07/30 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
了解Redis常见应用场景
2021/06/23 Redis
SQL SERVER触发器详解
2022/02/24 SQL Server
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript