下面是详细讲解“vue $router和$route的区别详解”的完整攻略:
下面是详细讲解“vue $router和$route的区别详解”的完整攻略:
背景
Vue.js 是一个轻量级的 MVVM 前端框架,常用的路由管理器是 vue-router。在使用 vue-router 过程中,可能会涉及到两个关键对象:$router 和 $route。这两个对象貌似很相似,但实际上有着明确的区别。本文将详细讲解两者的区别和应用场景。
$router
在 Vue.js 组件中,可以通过这个对象访问到 VueRouter 实例(路由管理器),从而可以方便地执行一些基于路由跳转的方法,如push, replace, go等,使用 $router 对象的优点:
- $router 可以很方便地执行路由跳转的方法。
- $router 对象仅用于在组件代码中调用路由方法,因此较为轻量。
示例:跳转到命名路径为/home的页面
// 通过 this.$router 访问路由(VueRouter实例)
this.$router.push({ name: 'home' });
$route
$route 是当前路由的信息对象,包含当前路由的路径、参数、查询参数等,使用 $route 对象的优点:
- $route 是只读的,不支持修改。
- $route 可以在 computed 中进行响应式更新,方便的获得当前路由变化后的信息。
示例:获取当前路径参数
// 通过 this.$route 访问当前路由信息
console.log(this.$route.params.id);
总结
$router 是 vue-router 的实例对象,提供了一些基于路由跳转的方法,如push, replace, go等。常用于在组件代码中执行路由跳转的方法。
$route 是当前路由的信息对象,包含当前路由的路径、参数、查询参数等。$route 是只读的,不支持修改,可以在 computed 中进行响应式更新,方便的获得当前路由变化后的信息。
除了上述区别,$router 和 $route 还有很多的实际应用场景,比如:
- 在全局导航守卫中使用 $router 拦截路由跳转。
- 在页面的 computed 中使用 $route 监听路由变化。
- 在组件内部使用 $router 跳转路由,同时又使用 $route 获得当前路由信息。
这里只是简单举了几个例子,还有很多其它的应用场景,需要在实际业务场景中灵活运用。
本文标题为:vue $router和$route的区别详解
基础教程推荐
- 解决element-ui的table表格控件表头与内容列不对齐问题 2024-04-04
- alt属性和title属性 2022-10-16
- ajax三级联动的实现方法 2023-01-31
- JS图片预加载 JS实现图片预加载应用 2024-02-09
- jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码 2024-01-08
- layui数据表格导入数据 2022-12-13
- vue页面锁屏的完美解决方法记录 2024-01-06
- js 键盘记录实现(兼容FireFox和IE) 2024-02-10
- 浅析JSONP技术原理及实现 2024-02-08
- flex布局兼容性问题小结 2024-04-08