1. 概述
名称 | $route | $router |
---|
含义 | 当前活跃路由的对象,包含与路由相关的信息(只读)。 | 路由实例对象,包含导航的方法和全局路由配置。 |
类型 | 是一个路由对象,表示当前路由的状态和信息。 | 是 VueRouter 类的实例,负责管理路由和执行跳转。 |
主要功能 | 提供当前路由的路径、参数、查询等详细信息。 | 提供路由导航的方法(如 push 、replace 等)。 |
2. 用法和属性
$route 的用法
常见属性
this.$route.path
this.$route.params
this.$route.query
this.$route.name
this.$route.meta
this.$route.matched
示例
const routes = [
{ path: '/user/:id', name: 'user', component: User, meta: { requiresAuth: true } }
];
console.log(this.$route.params.id);
console.log(this.$route.query.search);
console.log(this.$route.meta.requiresAuth);
$router 的用法
常见方法
this.$router.push('/home');
this.$router.replace('/about');
this.$router.go(-1);
this.$router.beforeEach((to, from, next) => {
console.log('全局前置守卫');
next();
});
示例
methods: {
goToUser(id) {
this.$router.push({ name: 'user', params: { id } });
},
logout() {
this.$router.replace('/login');
}
}
3. 区别对比
特性 | $route | $router |
---|
功能 | 提供当前路由的详细信息。 | 用于操作和管理路由,例如导航跳转。 |
只读 / 可读写 | 只读,不能修改 $route 的内容。 | 可读写,提供跳转、替换、注册路由守卫等方法。 |
导航能力 | 不具备导航能力,不能改变路由。 | 能导航到新路由,改变当前页面。 |
常用场景 | 获取当前路由的路径、参数、查询信息。 | 在逻辑代码中实现路由跳转。 |
类型 | 是路由对象,包含当前路由状态的详细信息。 | 是 VueRouter 实例,提供完整的路由操作功能。 |
4. 总结
$route
是 路由的状态对象,用于查看当前路由的状态和信息(路径、参数、查询等)。
$router
是 路由实例,用于执行路由操作(跳转、替换、注册守卫等)。
通常情况下,$route
用于获取当前路由信息,$router
用于控制页面跳转逻辑。