一,前言
1.props
和$attrs
具有数据的单向性,只能由父组件向子组件传递数据,不具备子传父的功能。
2.在vue
中,我们可以使用自定义事件实现子组件向父组件传递数据。
二,自定义事件
1.在子组件上使用v-on
指令绑定自定义事件
getChildData(data){
//data是子组件触发事件传递的参数
console.log('child data is' +data)
}
<child-c v-on:get-child-data='getChildData'></child-c>
2.事件的名称推荐使用-
分割
三,$emit
触发事件
1.每一个组件实例都要$emit
方法用来触发自定义事件。
2.$emit(fn,arg)
接受两个参数
(1)第一个参数是触发的事件名称,注意必须和定义的事件名完全相同。
(2)第二个参数是向父组件传递的数据。在父组件中就是定义的事件函数的第一个参数。
this.$emit('get-child-data','hello father')