当前位置:家常菜>百科>科技>正文

vue父子组件通信

人气:214 ℃/2023-10-16 02:19:19

vue父子组件通信方式有哪些?我们一起了解一下吧!

vue父子组件通信方式有Prop,$emit、$attrs 、 $listeners、provide 、 inject ,sync语法糖和一些其他方式。以下是常用通信方式的具体介绍。

1、prop

这个在我们日常开发当中用到的非常多。简单来说,我们可以通过 Prop 向子组件传递数据。用一个形象的比喻来说,父子组件之间的数据传递相当于自上而下的下水管子,只能从上往下流,不能逆流。这也正是 Vue 的设计理念之单向数据流。而 Prop 正是管道与管道之间的一个衔接口,这样水(数据)才能往下流。

2、$emit

官方说法是触发当前实例上的事件。附加参数都会传给监听器回调。

大致逻辑如下:当我在页面上点击按钮时,触发了组件 MyButton 上的监听事件 greet,并且把参数传给了回调函数 sayHi 。说白了,当我们从子组件 Emit(派发) 一个事件之前,其内部都提前在事件队列中 On(监听)了这个事件及其监听回调。

3、.sync 修饰符

在 vue@1.x 的时候曾作为双向绑定功能存在,即子组件可以修改父组件中的值。因为它违反了单向数据流的设计理念,所以在 vue@2.0 的时候被干掉了。但是在 vue@2.3.0+ 以上版本又重新引入了这个 .sync 修饰符。但是这次它只是作为一个编译时的语法糖存在。它会被扩展为一个自动更新父组件属性的 v-on 监听器。说白了就是让我们手动进行更新父组件中的值了,从而使数据改动来源更加的明显。

4、$attrs

包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。

5、$listeners

包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。

6、EventBus

思路就是声明一个全局Vue实例变量EventBus,把所有的通信数据,事件监听都存储到这个变量上,这样就到达在组件间实现数据共享,有点类似Vuex。

关于vue父子组件通信方式,我们就分享到这啦!

  • 网上选车牌需要什么条件?

    网上选择车牌号码,必须具备以下条件:1、有购车发票,有车辆发动机识别码,有车辆出厂合格证;2、登录当地交警网络,点击进入机动车号牌自选系统;3、输入后,根据提示输入发票号、机动...

    问答查看全文>>
  • 朋友圈有深度说说

    1、人生重要的不是你走了哪条路,而是你是否迈出了脚步。2、舒服就靠近,累了就远离。跟谁在一起舒服就跟谁在一起,这个世界已经让人很累了,至少自己不要再为难自己了,活得开心比什么都...

    说说查看全文>>
  • 企业管理理念宣传语 企业管理理念口号标语

    1、成功者找方法,失败者找借口。2、管理是科学,领导是艺术!3、讲职业道德,爱本职工作,树企业形象。4、小编为您整理的企业行为理念口号,企业宣传语八个字,企业经营理念标语,企业...

    句子查看全文>>
  • 蒙迪欧曲轴盘怎么拆装?

    蒙迪欧曲轴盘的拆装方法如下:1、拆卸时,在靠近进气歧管的后部,从主线束上拆下传感器线束,拆下油管安装螺栓上的固定曲轴位置传感器导线卡子的螺母,拆下曲轴位置传感器安装螺栓,拆下曲...

    问答查看全文>>
  • nc750s和nc750x的的不同之处是什么

    nc750s和nc750x的不同之处:1、车身尺寸不相同:nc750s车身长宽高分别为2215mm、775mm、1130mm;nc750x车身长宽高分别为2215mm、845m...

    问答查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版