{{ message }}
```
### 2. $emit
子组件通过`$emit`触发事件,父组件监听这些事件来实现子到父的通信。
**示例代码**:
```vue
{{ message }}
```
### 5. 事件总线(Event Bus)
事件总线是一种利用空的Vue实例作为中央事件总线来触发和监听事件的机制,适用于非父子组件间的通信。
**示例概念性描述**:
创建一个空的Vue实例,通过`$on`监听事件,`$emit`触发事件,实现跨组件通信。
### 6. 通过路由的query和params传递参数
在Vue Router中,可以通过路由的`query`和`params`参数在路由跳转时传递信息,适用于需要基于路由变化的组件间通信。
**示例代码**(基于Vue Router):
```javascript
// 使用query(URL中显示)
this.$router.push({ path: '/target', query: { userId: 123 }});
// 使用params(URL中不显示,但需注意需与动态路由匹配)
this.$router.push({ name: 'user', params: { userId: 123 }});
```
在目标组件中,可以通过`this.$route.query`或`this.$route.params`获取传递的参数。
综上所述,Vue提供了多种灵活高效的组件间通信方式,根据具体场景和需求选择最合适的通信机制是构建高效Vue应用的关键。在实际开发中,结合使用Vuex进行状态管理、Props和$emit进行父子通信、Provide/Inject进行跨层级通信,以及通过路由参数传递信息,可以构建出结构清晰、易于维护的Vue应用。此外,对于复杂或特定的通信需求,也可以考虑使用事件总线等高级技术。