第一:控制台输出

router的输出中mode属性,history属性是我们比较熟悉的

route的输出中都是我们平常可以用到的属性

第二:注入的属性 (区别)

通过在 Vue 根实例的 router 配置传入 router 实例,下面这些属性成员会被注入到每个子组件。

(1)this.$router

router 实例。

(2)this.$route

当前激活的路由信息对象。这个属性是只读的,里面的属性是 immutable (不可变) 的,不过你可以 watch (监测变化) 它。

第三:详细介绍router的常用用法:

(1)router实现路由跳转的两种方式,声明式、编程式(两个实现的功能是一样的,只是一个是写在html模板中,一个是写在jsvascript代码中)

<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
这两句代码实现同一个功能
router.push({ name: 'user', params: { userId: 123 }})

(2)编程式方式二:router.psuh

在 Vue 实例内部,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push

想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。

当你点击 <router-link> 时,这个方法会在内部调用,所以说,点击 <router-link :to="..."> 等同于调用 router.push(...)

编程式:该方法的参数可以是一个字符串路径,或者一个描述地址的对象。例如:

// 字符串
router.push('home')// 对象
router.push({ path: 'home' })// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})// 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})

注意:path和params不能一起用,使用path如果再使用params,params会被忽略,所以

const userId = 123
router.push({ name: 'user', params: { userId }}) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123
// 这里的 params 不生效 是错误的写法
router.push({ path: '/user', params: { userId }}) // -> /user

(2)编程式方式二:router.replace

跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。

(3)访问路由

methods: {goBack () {window.history.length > 1? this.$router.go(-1): this.$router.push('/')}}

(4)router.go(n)

这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)

// 在浏览器记录中前进一步,等同于 history.forward()
router.go(1)// 后退一步记录,等同于 history.back()
router.go(-1)// 前进 3 步记录
router.go(3)// 如果 history 记录不够用,那就默默地失败呗
router.go(-100)
router.go(100)

第四:详细介绍route的常用用法:

(1)$route.path

  • 类型: string
  • 字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"

(2)$route.params

  • 类型: Object

例: routes:[   {path: '/user/:id', component: user}  ]  为你配的路由,此时this.$route.params.id就是你的参数id的值

  • 一个 key/value 对象,包含了动态片段和全匹配片段,是你自己写的路由的参数,如果没有路由参数,就是一个空对象。

(3)$route.query

  • 类型: Object
  • 一个 key/value 对象,表示 URL 查询参数。例如,对于路径 /foo?user=1,则有 $route.query.user == 1,如果没有查询参数,则是个空对象。

(4)$route.hash

  • 类型: string
  • 当前路由的 hash 值 (带 #) ,如果没有 hash 值,则为空字符串。

(5)$route.fullPath

  • 类型: string
  • 完成解析后的 URL,包含查询参数和 hash 的完整路径。

(6)$route.name

  • 当前路由的名称 (查看命名路由)

(7)路由的监测

 watch: {'$route' (to, from) {// 对路由变化作出响应...}}

router route相关推荐

  1. 探讨Express Router Route

    Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架 安装 //应用生成器工具 npm install express-generator -g//创建express应用包 ...

  2. ajax 与route的区别,浅析vue-router jquery和params传参(接收参数)$router $route的区别

    今天做项目时踩到了vue-router传参的坑(jquery和params),所以决定总结一下二者的区别. 1.jquery方式传参和接收参数 传参: this.$router.push({ path ...

  3. 总结component和components,routes和route,router,$route和$router出现的场景

    总结component和components,routes和route,router,$route和$router出现的场景 1.component(单数): a.在路由规则里出现过; b.在内置标签 ...

  4. [React Router v4] Conditionally Render a Route with the Switch Component

    We often want to render a Route conditionally within our application. In React Router v4, the Route ...

  5. $router和$route的区别?

    $router和$route的区别? 区别 $ router $ route 区别 简单来说 $ router是用来操作路由的,$ route是用来获取路由信息的. $ router $router是 ...

  6. Vue中route和router的区别

    route 和 router route 包含路由信息的对象 如图所示:fullPath hash name - router 可以理解为操作路由的方法,包含了如:histroy 和一些生命钩子函数- ...

  7. Express4.x API (四):Router (译)

    Express4.x API 译文 系列文章 Express4.x API (一):application (译) -- 完成 Express4.x API (二):request (译) -- 完成 ...

  8. 使用React Router以编程方式导航

    通过react-router我可以使用Link元素来创建由react路由器本地处理的链接. 我在内部看到它调用this.context.transitionTo(...) . 我想从下拉列表中进行导航 ...

  9. 笔记react router 4(三)

    上一篇我们说到了路由组件的嵌套.想必你已经运用自如了.那么,这一次我们来聊一聊4.X中Router的变更. 在3.X中我们若使用路由的模式,可通过在Router上配置history的值即可. 例如, ...

最新文章

  1. C++知识点54——RTTI(运行时类型识别)
  2. GitLab-怎样使用GitLab托管项目
  3. android查看kernel log
  4. 怎么使图表居中显示_【Excel技巧】制作柱形图图表完美呈现百分比,提升您的报表颜值...
  5. Ubuntu实现树莓派交叉编译
  6. .netCHARTING图表控件详细介绍及下载
  7. (链表 栈 队列 递归)
  8. bash 的相关配置
  9. Python数模笔记-NetworkX(4)最小生成树
  10. kafka 集群服役新节点
  11. css transition改动透明,使用CSS transition和animation改变渐变状态的实现方法
  12. 把照片存QQ相册会越来越模糊,你们会把照片存在哪里?
  13. 【有内鬼,终止交易】风靡朋友圈的壁纸,实现代码竟如此简单 | 原力计划
  14. 计算机体系结构a类会议,通信、计算机等领域常见A类国际学术会议.PDF
  15. 503.下一个更大元素II(力扣leetcode) 博主可答疑该问题
  16. IMX6UL时钟配置
  17. 保证成功率的方案,首先要从实施维度入手
  18. js判断上传文件为图片格式、excel格式
  19. qq街景输入 dir-item.js
  20. 为什么使用LINUX(有点长,没耐心别看)大家自己体会

热门文章

  1. 使用Excel替换某一字符后的全部内容
  2. 2023年最值得期待的“黑科技”有哪些?
  3. 一文看懂REE OS、TEE OS、CA以及TA概念、架构、流程
  4. 突发!知识星球官方禁止一切加星球送ChatGPT账号拉新~有人慌了!
  5. 流媒体通信开发系列索引 -- SIP 电话项目实战系列
  6. Visual Studio公然给人戴绿帽被举报!
  7. 一份APT报告里有什么?
  8. Image Printing Program Based on Halftoning
  9. npm安装插件速度太慢怎么办?
  10. 萌新的java学习之路——第一周