今天做项目的时候,踩了一个坑,如下图所示,我在A组件中声明了一个监听函数,用来接收B组件传递过来的数据:
在B组件中,我将传递数据单独写成一个函数(sendParamObj),然后再在另一个函数中去调用这个函数
结果发现A组件始终无法接收到B组件传递过来的数据。思考了好久才知道,全局事件总线必须要先监听数据,再进行数据的传递(即先执行$on,再执行$emit),如果在数据监听之前就进行数据的传递,会导致监听不到数据的情况出现,所以这里将上述的函数进行改进,添加nextTick方法,如下图所示:
这样就保证了先执行先监听数据,再传递数据!