本文共 1853 字,大约阅读时间需要 6 分钟。
在前文中,我们学习了Vue Router的基础知识和使用方法。本文将深入探讨Vue Router在组件间通信和路由参数传递方面的实际应用。
在Vue.js应用中,组件间的通信是一个核心问题。通过Vue Router,我们可以在路由切换时,轻松地在组件间传递参数。以下是实现组件间通信的常用方法:
首先,我们需要创建一个事件总线,用于实现组件间的通信。在src/assets目录下,创建一个新的文件bus.js:
import Vue from 'vue'export default new Vue({ methods: { emit: Vue.prototype.$emit }}) 或者更简单地:
let bus = new Vue()export default bus
在BrotherComponent.vue中:
这是兄弟组件
在SisterComponent.vue中:
这是姐妹组件
{{ msg }}
在src/router目录下,创建test.js:
import Vue from 'vue'import Router from 'vue-router'import Brother from '@/components/test04/BrotherComponent'import Sister from '@/components/test04/SisterComponent'Vue.use(Router)export default new Router({ routes: [ { path: '/', name: 'Brother', component: Brother }, { path: '/sister', name: 'Sister', component: Sister } ]}) 在Vue Router中,路由参数的传递是实现组件间通信的重要手段。以下是两种常用方式:params和query。
在组件中使用$router.push方法:
methods: { sendMsg() { this.$router.push({ name: 'two', params: { code: this.code } }) }} 在目标组件中使用$route.params:
{{ msg }}
{{ $route.params.code }}
在组件中使用$router.push方法:
methods: { sendMsg() { this.$router.push({ path: 'Four', query: { msg: this.msg } }) }} 在目标组件中使用$route.query:
{{ msg }}
{{ $route.query.msg }}
| 特性 | params | query |
|---|---|---|
| URL 中的表现 | 没有显示 | 显示在地址栏 |
| 数据持久性 | 不持久 | 持久 |
| 数据传递方式 | 只能通过 name | 可以通过 path 或 name |
| 数据在组件中的获取 | $route.params | $route.query |
通过上述方法,我们可以轻松实现组件间的通信和路由参数的传递。在实际开发中,可以根据具体需求选择合适的传递方式,灵活配置路由参数,提升应用的功能和用户体验。
转载地址:http://fsfyz.baihongyu.com/