Vue-cli2.0中$router和$route的区别

最近在进行公司项目迭代,项目是两年前的,使用的是vue框架。*_*我是vue小白*_*,在修改代码的过程当中,其中用到了VueRouter,在路由的设置和跳转中遇到了两个对象$router和$route,有些傻傻分不清,后来本身结合网上的博客和本身本地的Vue devtools(vue调试工具)结构了解了它们的区别

router是Vue的一个实例

经过Vue.use(VueRouter)和VueRouter构造函数获得一个router的实例对象,这个对象是一个全局对象。它包含了全部的路由以及许多关键的对象和属性。vue

// 举例 history对象
$router.push({path:'home'})
// 本质上是向history栈中添加一个路由,在咱们看来是切换路由,实际上是在添加一个history记录复制代码

$router路由实例方法:数组

  • push

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

push方法其实和<router-link :to="...">是等同的。
注意:push方法的跳转会向 history 栈添加一个新的记录,当咱们点击浏览器的返回按钮时能够看到以前的页面。
浏览器

  • go
// 页面路由跳转 前进或者后退
this.$router.go(-1) // 后退复制代码
  • replace

// 替换路由 没有历史记录
$router.replace({path:'home'});
// 通常使用replace来作404页面this.$router.replace('/')复制代码

route是一个跳转路由的对象

每个路由都会有route对象,它是一个局部对象。$route对象表示当前的路由信息,包含了当前 URL 解析获得的信息。包含当前的路径,参数,query对象等bash

  • path
$route.path
    字符串,对应当前路由的路径,老是解析为绝对路径,如 "/foo/bar"复制代码
  • params
$route.params    
    一个 key/value 对象,包含了 动态片断 和 全匹配片断,若是没有路由参数,就是一个空对象。复制代码
  • query
$route.query
      一个 key/value 对象,表示 URL 查询参数。
      例如,对于路径 /foo?user=1,则有 $route.query.user == 1,
      若是没有查询参数,则是个空对象。复制代码
  • hash
$route.hash
      当前路由的 hash 值 (不带 #) ,若是没有 hash 值,则为空字符串。锚点复制代码
  • fullPath
$route.fullPath
      完成解析后的 URL,包含查询参数和 hash 的完整路径。复制代码
  • matched
$route.matched
      数组,包含当前匹配的路径中所包含的全部片断所对应的配置参数对象。复制代码
  • name
$route.name  当前路径名字复制代码

  • meta
$route.meta  路由元信息复制代码
相关文章
相关标签/搜索