(尚031)Vue_案例_自定义事件(组件间通信第2种方式:vue自定义事件)

自定义事件:

我们知道,父组件使用prop传递数据的子组件,但子组件怎么跟父组件通信呢?

这个时候Vue的自定义事件系统就派得上用场了.

自定义事件知道两件事:

(1).绑定

(2).触发

 

 注意:$on(eventName,回调函数)

==================================================================

 

 之前App.vue和TodoHeader.vue组件之间传递信息靠的是函数的形式

而现在vue自定义事件代替传函数这种形式

 

 

 

 现在改成这这种形式:

名字就起回调函数的名字

<!--给TodoHeader标签对象绑定addTodo事件监听-->

 

 以前是调用addTodo函数,现在没有了

 

 现在需要触发事件($emit()),通知addTodo函数去调用

 

  方法://触发自定义事件:addTodo

//触发事件需要指定事件名,还需要指定传递数据

//一触发触发事件,回调函数需要调用addTodo,需要接收todo

this.$emit('addTodo',todo)

 

 ===================================================================

第二种方法:使用$on(eventName)监听事件;vue中自己实现的一套机制,用的不多

如:现在只留下,没有传任何参数

 

 

 但是,TodoHeader.vue中有触发事件

 

 这时,App.vue需要绑定一个监听

mounted(){// 执行异步代码

  //给<TodoHeder/>绑定addTodo事件监听

  //指定事件名和回调函数 

  //监听绑定在this上面,this现在指App.vue组件,而现在需要绑定TodoHeader.vue组件,不对

  this.$on('addTodo',this.addTodo)//有问题

}

故现在需要找到下面这个标签

 

 header属性指向了<TodoHeader  ref="header"/>标签对像

posted @ 2019-12-17 17:53  Curedfisher  阅读(324)  评论(0编辑  收藏  举报