1.非父子之间的通信,是普通组件之间的通信。需要借助一个新的实例化vue对象bus.js
bus.js中的代码
bus中的代码
在事件监听中,会出现第一次监听不到数据的情况,即bus.$on获取不到数据,这时,需要在bus.$emit外添加一个$nextTick()来解决。
示例:
bus.$emit触发
bus.$on监听
特别注意:
在bus中的this指向问题。因为bus中的this指向bus实例对象,所以在bus中想要给data中设置值的时候,需要保存一个vue的this为that,进而设置data中的值。
2.路由组件之间的通信用params,query,localStorage进行传数据。
示例:
编程式导航传参
接收参数
注意:编程式导航的参数传递:params只能和name进行搭配,path和query进行搭配,或者只有单一个path。