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类中的公有变量和私有变量
Jul 24 Javascript
jQuery技巧总结
Jan 01 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
javaScript中的this示例学习详解及工作原理
Jan 13 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
Feb 11 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
Jan 04 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
原生JS上传大文件显示进度条 php上传文件代码
Mar 27 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
判断js数据类型的函数实例详解
May 23 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 高效率写法 推荐
2010/02/21 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
Jquery解析json数据详解
2013/12/26 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
vue.js实现只弹一次弹框
2018/01/29 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
实例讲解Python中函数的调用与定义
2016/03/14 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
平面设计师的工作职责
2013/11/21 职场文书
财务主管的岗位职责
2013/12/30 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
户外活动总结
2015/02/04 职场文书
放飞理想主题班会
2015/08/14 职场文书
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
Java Spring Lifecycle的使用
2022/05/06 Java/Android