router和route在Vue Router中的区别和作用:
$router:
-
是VueRouter的实例对象,用于导航操作(navigation guards, navigation confirmation)。
-
提供了路由的导航功能方法,如push、replace、go等。
-
通常在组件外部使用,如导航守卫、全局前置守卫等。
$route:
-
当前路由对象,包含了路径,参数,查询,hash等信息。
-
只读属性,用于获取当前路由信息。
-
通常在组件内使用,获取当前路由信息。
应用场景:
-
$router:
-
全局前置守卫中使用 $router.push() 进行路由跳转
-
导航守卫中使用 $router.replace() 进行路由替换
-
-
$route:
-
组件内使用 $route.path 获取当前路由路径
-
组件内使用 $route.query 获取查询参数
-
组件内使用 $route.params 获取路由参数
-
所以:
-
$router 用于导航操作,如路由跳转、替换等
-
$route用于获取当前路由信息,如路径、参数等
-
router在组件外使用,router在组件外使用,route在组件内使用
区分清楚两者的作用,可以更好地应用在不同的场景中