vue组件的使用

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 一起使用。

  1. 父子组件通信: props; $parent / $children; provide / inject ; ref ;  $attrs / $listeners
  2. 兄弟组件通信: eventBus ;  vuex
  3. 跨级通信:  eventBus;Vuex;provide / inject 、$attrs / $listeners


版权声明:本文为weixin_40746230原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。