视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
在vue中如何实现父组件点击触发子组件事件
2020-11-27 19:40:02 责编:小OO
文档
下面我就为大家分享一篇vue父组件点击触发子组件事件的实例讲解,具有很好的参考价值,希望对大家有所帮助。

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

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

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

父组件app.vue

<template>
 <p id="app">
 <!--父组件-->
 <input v-model="msg">
 <button v-on:click="notify">广播事件</button>
 <!--子组件-->
 <popup ref="child" ></popup>
 </p>
 </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>
 <p>
 <ul>
 <li v-for="item in messages">父组件输入了:{{item}}</li>
 </ul>
 </p>
 </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数组中

运行结果如下:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在Vue2.0中实现用户权限控制

详解如何实现vuex(详细教程)

通过vue.js实现微信支付

下载本文
显示全文
专题