当前位置: 首页 > web >正文

Vue3 中 Route 与 Router 的区别

在 Vue Router 中,Route 和 Router 是两个相关但完全不同的概念:

1、Router (路由实例)

  • 定义Router 是路由器的实例,负责整个应用的路由管理

  • 功能

    • 管理路由映射表(路由配置)

    • 提供编程式导航方法(如 pushreplacego

    • 监听 URL 变化

    • 匹配路由组件

  • 获取方式

    import { useRouter } from 'vue-router'
    const router = useRouter()
  • 常用方法

    • router.push('/path')   // 跳转到新路由(添加历史记录)

    • router.replace('/path'// 替换当前路由(不添加历史记录)

    • router.go(-1)  // 后退一步

    • router.back()  //后退一步

    • router.forward()  //前进一步

2、Route (路由)

  • 定义Route 是当前激活的路由对象,表示当前的路由状态

  • 功能

    • 包含当前路由的信息

    • 提供访问当前路由参数、查询参数、hash等

  • 获取方式

    import { useRoute } from 'vue-router' const route = useRoute()
  • 常用属性

    • route.path  //当前路由路径(如 "/path/1002")

    • route.params  //动态路由参数(如 { name: 'zhangsan' })

    • route.query - URL 查询参数如 ?id=1002=> { id: '1002' })

    • route.hash - URL 的 hash 部分(如 #home)

    • route.name - 路由名称(如果有定义)

    • route.matched - 当前匹配的路由记录数组

3、简单对比

特性RouterRoute
类型路由管理器(主动控制导航)当前路由信息(被动反映状态)
用途控制路由跳转获取当前路由信息,参数、查询、路径等
修改 URL可以(通过 push/replace 只读
响应式非响应式对象响应式对象(自动更新)
获取方式useRouter() 或 this.$routeruseRoute() 或 this.$route
典型使用编程式导航访问路由参数、查询参数等

4、示例

import { useRouter, useRoute } from 'vue-router'export default {setup() {const router = useRouter() // 路由器实例const route = useRoute()   // 当前路由对象function navigate() {// 使用 router 进行导航router.push({ name: 'user', params: { id: 123 } })}// 使用 route 访问当前路由信息const userId = route.params.idreturn { navigate, userId }}
}

5、总结

Router 是"做"路由跳转的,而 Route 是"读"当前路由信息的。

http://www.xdnf.cn/news/7820.html

相关文章:

  • 标准IO(2)、文件IO
  • 华为云Flexus+DeepSeek征文|华为云 Dify LLM 平台单机部署教程:一键开启高效开发之旅
  • PDF处理控件Aspose.PDF教程:以编程方式将PDF转换为Word
  • 用户有一个Django模型没有设置主键,现在需要设置主键。
  • JavaEE 初阶文件操作与 IO 详解
  • 网络安全--PHP第一天
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice实现PDF文件加盖印章和签字功能
  • 快速刷机Android10+Root
  • OpenCV CUDA模块图像特征检测与描述------图像中快速检测特征点类cv::cuda::FastFeatureDetector
  • CSS【详解】弹性布局 flex
  • C++ 11(1):
  • 是德科技 | 单通道448G未来之路:PAM4? PAM6? PAM8?
  • Axure设计之带分页的穿梭框原型
  • Oracle基础知识(二)
  • Open3D 半径滤波器
  • Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破
  • labelme进行关键点标注并转换为yolo格式
  • Vue3 与 Vue2 区别
  • Vue大数据量前端性能优化策略
  • Linux 文件(3)
  • 计算机网络--第一章(下)
  • 【Java】封装在 Java 中是怎样实现的?
  • 面经总目录——持续更新中
  • 数据库基础
  • 写实数字人在展厅的应用:探索无限可能
  • Rocketmq刷盘机制和复制机制区别及关系
  • 超长文本注意力机制如何突破传统 O(n²) 瓶颈
  • 【Redis】哈希表结构
  • Baklib构建AI就绪型知识中台实践
  • 内网穿透:轻松实现外网访问本地服务