vue父子组件通信
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父子组件通信方式,我们就分享到这啦!
-
高姿防晒霜防水防汗吗 高姿防晒霜孕妇可以用吗
高姿是我们大家都很熟悉的一盒护肤品品牌,同时高姿的防晒霜也是很多人都用过的,而孕妇有时也需要出门,那么我们便要了解一下高姿防晒霜孕妇可以用吗?高姿防晒霜需要卸妆吗?高姿防晒霜孕...
品牌查看全文>> -
新款3系前悬架是铝合金的吗
新款3系的前悬架是铝合金的,铝合金悬架可以降低簧下质量,这样可以提高车子的操控性。一般的讲究操控的汽车悬架都会使用铝合金来制造,有很多豪华车悬架也会使用铝合金制造。宝马3系是一...
问答查看全文>> -
别克昂科旗点烟器怎么用,昂科旗点烟器保险丝位置
别克昂科旗点烟器位于挡位按键下方,点烟器使用方法简单,只需直接按下手柄开关,即会自动加热。别克昂科旗点烟器保险丝位置前排点烟器的保险丝位于主驾驶中控台最左侧的盖板里,如图所示。...
问答查看全文>> -
薄雪万年草怎么过冬,充足光照控水养护
薄雪万年草的耐寒性不强,一般在冬天时需摆放在阳光下暴晒,还要控制好浇水量,需等待土壤发白时再浇水,冬天时不用给其施肥,入冬时可施一次有机肥,这样有利于薄雪万年草过冬,如果温度低...
养花查看全文>> -
量天尺寓意是什么意思
量天尺寓意是无穷的将来,因为量天尺植株较为高大,且一直向生长。也寓意着健康长寿,因为量天尺生命力较强。养殖量天尺,在其成长期,需要施加氮磷钾复合肥,促进生长。也需要将其放置在半...
养花查看全文>>
推荐
- 1途锐蓄电池位置在哪?208
- 2小车轮胎厚度是多少合适?300
- 3标准胎压是多少?108
- 4十一月句子说说349
- 5蛇年女孩起名常用字带释义326
- 62022年五四青年节文案句子359
- 7运动裤子纯棉好还是涤纶的 运动裤含棉越高越好吗192
- 8奔驰副驾驶怎么调座椅?474