props $emit 组件通讯-自定义事件
event.$on 绑定自定义事件 生命周期 mounted 里面绑定
event.$emit 调用自定义事件
在生命周期beforeDestory 解绑 event.$off
vue中组件通信的几种方式
Props
/$emit
父组件通过props的方式向子组件传递数据,而通过$emit 子组件可以向父组件通信。
$children / $parent
this.$parent 可以直接访问该组件的父实例或组件;
父组件也可以通过this.$children 访问它所有的子组件; 需要注意 $children 并不保证顺序,也不是响应式的。
provide/ inject
provide/ inject 是vue2.2.0新增的api, 简单来说就是父组件中通过provide来提供变量, 然后再子组件中通过inject来注入变量。
localStorage / sessionStorage
$attrs与 $listeners
多级组件嵌套需要传递数据时,通常使用的方法是通过vuex
。但仅仅是传递数据,不做中间处理,使用 vuex
处理,未免有些大材小用了。所以就有了 $attrs
、 $listeners
两个属性 ,通常配合 inheritAttrs 一起使用。
- 父子组件通信: props; $parent / $children; provide / inject ; ref ; $attrs / $listeners
- 兄弟组件通信: eventBus ; vuex
- 跨级通信: eventBus;Vuex;provide / inject 、$attrs / $listeners
版权声明:本文为weixin_40746230原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。