首页 > 其他 > 详细

Vue中父子组件的通讯

时间:2021-07-01 14:43:34      阅读:22      评论:0      收藏:0      [点我收藏+]

一、父组件调用子组件中的函数和数据

父组件中引入子组件 center-box:

技术分享图片

 

 

 首先给子组件加上 ref 属性 ‘center_box’

1、调用子组件的函数:

  this.$refs[‘center_box‘].test()

2、调用子组件中 data 的值:this.$refs[‘center_box‘].key

二、子组件使用父组件的值和函数

1、父组件通过 props 来传递给子组件值和函数(这是第一种方法,通过props来传递,这种方式是单向的,只能父传子):

技术分享图片

 

 station_svg是父组件中的一个值,map_status是父组件中的一个函数

技术分享图片

 

  在子组件中接收,记得声明接收的类型,然后就可以在子组件中使用父组件的函数和值,如下所示。

技术分享图片

 

 console.log(this.station_svg)

2、通过 $emit 方法来传递(这是第二种方法,同样也是单向的,只能子组件调用父组件)

技术分享图片

 

 如上图所示,监听子组件的操作,对应父组件中的一个函数,如下图所示:

技术分享图片

 

 然后,在子组件中通过 $emit 来触发:

技术分享图片

 

 这样,当子组件触发 map_station_dblclick 时,就会执行父组件中对应的 map_station_dblclick

3、通过 this.$parent 调用 父组件的函数和值(第三种方法,简单粗暴,但慎用,一般采用上述的两种方法)

直接 tthis.$parent.父组件中的函数和值就可以了

Vue中父子组件的通讯

原文:https://www.cnblogs.com/lyt520/p/14957903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!