在 Vue Router 中,$route 和 $router 这两个对象的用途与获取方式有何不同?请分别说明它们各自代表什么,以及在组件中如何访问。
考察说明
考察对 Vue Router 核心对象 $route 和 $router 的理解与区分。
回答思路
- 【回答框架 1】$route 是当前激活的路由信息对象,包含路径、参数、查询、hash 等,它是只读的,每次导航后都会更新。
- 【回答框架 2】$router 是 Vue Router 的实例,提供导航方法如 push、replace、go,以及配置如 mode、routes,用于编程式导航。
- 【回答框架 3】在组件中,通过 this.$route 和 this.$router 访问;在组合式 API 中,使用 useRoute 和 useRouter 获取。
- 【关键点 1】$route 是路由信息,$router 是路由实例。
- 【关键点 2】$route 包含当前路由参数,$router 可执行导航。
- 【关键点 3】通过 this.$route / useRoute 读取信息,通过 this.$router / useRouter 进行跳转。
- 【易错点 1】不要尝试修改 $route,它只读,应通过 $router 导航来改变。
- 【易错点 2】在组件中避免解构 $route 导致失去响应式。