前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue子组件向父组件传值this.$emit()

Vue子组件向父组件传值this.$emit()

作者头像
别团等shy哥发育
发布2023-02-25 11:33:52
1.7K0
发布2023-02-25 11:33:52
举报
文章被收录于专栏:全栈开发那些事

Vue子组件向父组件传值this.$emit

1、问题描述

  今天碰到了个问题,我有个属性分组的页面,该页面中引入两个子组件,一个是左侧的属性菜单子组件,另一个是新增按钮的对话框组件。右侧为一个表格,显示左边树形菜单中三级分类的所有商品。   但是通过新增按钮添加商品之后,右侧的表格并不会刷新显示最新的数据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们的目的是子组件中表单提交之后通知父组件刷新表格中的数据。

2、解决方案:this.$emit()方法

  子组件某些功能想要与父组件通信,可以让子组件使用this.emit()方法触发事件,父组件使用v-on指令监听子组件的自定义事件。   emit()方法的语法形式如下:

代码语言:javascript
复制
$emit({string} eventName,[...args])

  eventName为事件名,args为附加参数,这些参数会传给事件监听器的回调函数。如果子组件需要向父组件传递数据,就可以使用第二个参数。

  对于我这个案例来说,子组件需要在对话框中执行表单的提交按钮之后,通知父组件刷新表格中的数据。   在子组件中触发事件通知父组件刷新数据: attrgroup-add-or-update.vue

在这里插入图片描述
在这里插入图片描述

  父组件使用v-on指令监听子组件提交的refreshDataList事件(事件名字是自定义的): attrgroup.vue

在这里插入图片描述
在这里插入图片描述

@refreshDataList这种形式是v-on指令的简写语法,@后面跟的值就是我们子组件中的自定义事件。

在这里插入图片描述
在这里插入图片描述

  这样就实现了在子组件发生表单提交事件的时候,父组件也能执行刷新表格数据的请求,让前端显示的数据一直是最新的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Vue子组件向父组件传值this.$emit
  • 1、问题描述
  • 2、解决方案:this.$emit()方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档