在 Vue.js 中 $router
和 $route
是两个与路由管理相关的对象,它们有以下主要区别:
$router
- $router 是 Vue Router 的实例,是一个全局对象。
- 它包含了所有的路由信息和路由操作方法,如
push()
、replace()
、go()
等,用于导航到不同的路由。 - $router 还包含路由的钩子函数,如
beforeEach()
、beforeResolve()
、afterEach()
等,用于在路由切换前后执行某些操作。 - 通过
$router.options.routes
可以访问到配置的路由列表。
$route
- $route 是一个局部对象,表示当前活跃的路由。
- 它是只读的,包含了当前路由的各种信息,如路径(
path
)、名称(name
)、参数(params
)、查询参数(query
)、哈希(hash
)以及路由元信息(meta
)等。 - $route 对象是响应式的,当路由改变时,其属性会自动更新。
- 在组件中,可以通过
this.$route
访问当前的路由信息,例如this.$route.params
获取路由参数,this.$route.query
获取查询参数。
简而言之,$router
主要用于控制路由的切换和全局的路由配置,而 $route 则是用来获取和响应当前活跃路由的具体信息。
网友评论