本文共 1566 字,大约阅读时间需要 5 分钟。
作为一名技术人员,今天我想系统地探讨 Vue.js 中与路由相关的两个核心概念:$route 和 $router。了解它们的区别及其使用场景,对于优化路由管理和应用性能极为重要。
$route 是一个只读属性,主要用于获取当前路由的状态信息。在大多数 Vue 应用中,这个属性会在使用 Vue Router 的时候频繁被使用。$route 的核心作用是提供路由信息的透明访问,帮助开发者获取路由参数、路径和查询参数等。
$route 的主要属性包括:
/:id
类型的路由参数会被存储在这里。page=1
这样的参数会出现在这里。代码示例:
created() { console.log(this.$route.path); // 输出当前路由路径 console.log(this.$route.params.id); // 动态参数查看 console.log(this.$route.query.page); // 查询参数查看}
$router 是一个完整的 Vue Router 实例,它提供了路由管理的核心功能。这个实例包含导航、 路由缓存、 路由列表管理以及路由观察器等高级功能。$router 可以通过各种方法进行路由操作,如跳转、替换、历史记录管理等。
$router 的主要方法包括:
go(-1)
。go(1)
。代码示例:
methods: { navigateToUserPage(id) { this.$router.push({ name: 'user', params: { id } }); }, watchRouteChanges() { this.$router.watchRoute((to, from) => { console.log(`从 ${from.path} 到 ${to.path}`); }); }}
要区分 $route 和 $router 的关键在于它们的用途差异:
根据需要选择使用 $route 还是 $router:
举个实际例子,假设你正在开发一个用户详情页面。在 user/:id
路由中,你可能需要通过 $route 获取 id 参数,而如果你想跳转到其他页面或监控路由变化,则需要使用 $router。
通过以上了解,你应该能够清楚地区分 $route 和 $router 的作用,并根据实际需求选择合适的路由操作方式。在实际开发中,$route 和 $router 可能会同时使用,特别是在需要导航和获取路由信息时。
转载地址:http://ikryk.baihongyu.com/