关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

Chase620
• 阅读 1313

1、需求引入

关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

image.png

这是父组件下的子组件的子组件,一个绑定子设备的弹出窗modal,那么我们怎么样在这个组件中选中子设备后点击确定时去触发父组件的父组件的table列表数据刷新呢?

关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

image.png

关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

image.png

关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

image.png

关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

组件的层级关系.png

上述的图示便是部分代码的展示,一般的组件传值有父组件传子组件(子组件通过props去接收),子组件传父组件(子组件通过 this.$emit() 传出去,父组件通过传出的自定义事件名绑定,然后添加事件),还有一个就是非父子组件传值(通过事件车bus.$emit()以及bus.$on()进行通信),但是,很显然,针对这种需求情况,这几种传值都不可以实现,子级通过某个事件结束时去触发父级的父级的方法,那么只能通过发布/订阅或者$parent来获取父组件。
下面的是我个人的解决方法:

1. 在table.vue中传一个freshData()事件给父组件Gateway.vue
<Gatewaymodel ref="gatewaymodel" :title="title"></Gatewaymodel>

//分发一个事件freshData
mounted(){
      this.$emit('freshData');
  }, 
2. 在Gateway.vue组件中接收事件
<Eqtable
  @handleDis="handleDis"
  @handleState="handleState"
  @freshData="freshData"
  :data="datalist"
  :total="total"
></Eqtable>

//去刷新数据
freshData(){
  this.Datalist();
} 
3. 在GatewayModal.vue组件中,绑定子设备成功的回调方法中加入
// 拿到父组件的父组件的freshData()方法,这样便可以刷新Gateway.vue组件中的数据
this.$parent.$options.parent.freshData() 

2、下面是演示结果(数据是自拟的)

关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?

孙级组件刷新.gif

本文转自 https://www.jianshu.com/p/051130e10426,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
Alex799 Alex799
3年前
vue最新面试题
最近在面试,总结几个重点的面试题:一、vue父子组件之间的传值:简单来说,子组件通过props方法接受父组件传来的值,子组件通过$emit方法来向父组件发送数据。(具体案例可以看我之前写的博客)。二、vue生命周期函数:beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestr
Chase620 Chase620
3年前
vue的8种通信方式
1.props/emit1.父组件向子组件传值下面通过一个例子说明父组件如何向子组件传递数据:在子组件article.vue中如何获取父组件section.vue中的数据articles:\'红楼梦','西游记','三国演义'\//section父组件<template<divclass"section"
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Souleigh ✨ Souleigh ✨
3年前
React 组件间通信的10种方法
组件间通信方式总结父组件子组件:1.Props2.InstanceMethods子组件父组件:1.CallbackFunctions2.EventBubbling兄弟组件之间:1.ParentComponent不太相关的组件之间:1.Context2.Portals3.Global
Easter79 Easter79
3年前
tomcat系列之五:Tomcat各个组件生命周期
一,Tomcat中各个组件的关系1,组件有大有小,大组件管理小组件。比如Server管理Service,Service管理连接器和容器2,组件有内有外,外层组件控制内层组件。比如外层组件连接器负责对外交流,外层组件调用内层组件完成业务功能二,创建组件的顺序先创建子组件,再创建父组件,然后把子组件注入到父组件中先创建内层组件,再创建外层
浩浩 浩浩
3年前
【Flutter实战】对齐与相对定位(Align)
4.6对齐与相对定位(Align)在上一节中我们讲过通过Stack和Positioned,我们可以指定一个或多个子元素相对于父元素各个边的精确偏移,并且可以重叠。但如果我们只想简单的调整一个子元素在父元素中的位置的话,使用Align组件会更简单一些。4.6.1AlignAlign组件可以调整子组件的位置,并且可以根据子
爱丽丝13 爱丽丝13
3年前
React 组件通信之发布订阅模式
React通信react的数据流是单向的,react通信有以下几种方式:父向子通信:传入props子向父通信:父组件向子组件传一个函数,然后通过这个函数的回调,拿到子组件传过来的值父向孙通信:利用context传值。React.createContext()兄弟间通信:​1、找一个相同的父组件,既可以用pr
Dax Dax
3年前
Vue父子组件
几种常见的通信方式:1、prop属性父组件通过绑定属性的方式,给子组件传值,同时子组件通过设置props来接收letChildVue.extend(template:'content',props:content:type:String,default:()r
LinMeng LinMeng
4年前
Stella981 Stella981
3年前
Flutter子组件调用父组件方法修改父组件参数
子组件调用父级组件方法的主要实现是父组件给子组件传入一个方法,然后在子组件中调用父级方法来修改父级的参数。看一下效果图!(https://img2018.cnblogs.com/blog/1038765/201907/103876520190702152130487420290106.gif)父级组件实现在父级组件中写一个