• $route(to, from)


    https://www.jianshu.com/p/fa0b5d919615

    vue-router中$route 和 $router

    1. $route对象

     
    $route.png

    1.1 $route 表示(当前路由信息对象)

    表示当前激活的路由的状态信息,包含了当前 URL 解析得到的信息,还有 URL 匹配到的 route records(路由记录)。
    路由信息对象:即$router会被注入每个组件中,可以利用它进行一些信息的获取。

    **1.$route.path**
          字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"**2.$route.params**
          一个 key/value 对象,包含了 动态片段 和 全匹配片段,
          如果没有路由参数,就是一个空对象。
    **3.$route.query**
          一个 key/value 对象,表示 URL 查询参数。
          例如,对于路径 /foo?user=1,则有 $route.query.user == 1,
          如果没有查询参数,则是个空对象。
    **4.$route.hash**
          当前路由的 hash 值 (不带 #) ,如果没有 hash 值,则为空字符串。锚点
    **5.$route.fullPath**
          完成解析后的 URL,包含查询参数和 hash 的完整路径。
    **6.$route.matched**
          数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。
    **7.$route.name    当前路径名字**
    **8.$route.meta  路由元信息

    1.2 route object 出现在多个地方:

    (1)在组件内,即 this.$route
    (2)在 $route 观察者回调内 router.match(location) 的返回值
    (3)导航守卫的参数:
    
    
    router.beforeEach((to, from, next) => {
      // to 和 from 都是 路由信息对象
    })
    watch: {
      $route(to, from) {
         // to 和 from 都是 路由信息对象
      }
    }

    2. $router对象

     
    $router.png

    全局的路由实例,是router构造方法的实例。
    在 Vue 实例内部,你可以通过 $router 访问路由实例

    const router = new Router({
      routes: [
        {
          path: "/",
          name: "首页",
          redirect: '/home'
        },
        {
          path: '/login',
          name: 'Login',
          component: Login
        },
        { path: '*', component: NotFoundComponent }
      ],
      linkActiveClass: "active-router",
      linkExactActiveClass: "exact-router"
    })

    2.1 全局挂载路由实例

    // 全局注册的路由
    Vue.use(VueRouter)

    2.2 路由实例方法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 栈添加一个新的记录,当我们点击浏览器的返回按钮时可以看到之前的页面。

    2.2 路由实例方法go

    // 页面路由跳转 前进或者后退
    this.$router.go(-1) // 后退

    2.3 路由实例方法replace

    //push方法会向 history 栈添加一个新的记录,而replace方法是替换当前的页面,
    不会向 history 栈添加一个新的记录
    <router-link to="/05" replace>05</router-link>
    
    // 一般使用replace来做404页面
    this.$router.replace('/')
  • 相关阅读:
    Apache 虚拟主机 VirtualHost 配置
    EAX、ECX、EDX、EBX寄存器的作用
    Python中文文档 目录(转载)
    八度
    POJ 3268 Silver Cow Party (最短路)
    POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
    2013金山西山居创意游戏程序挑战赛——复赛(1) HDU 4557 非诚勿扰 HDU 4558 剑侠情缘 HDU 4559 涂色游戏 HDU 4560 我是歌手
    HDU 4549 M斐波那契数列(矩阵快速幂+欧拉定理)
    UVA 11624 Fire! (简单图论基础)
    HDU 3534 Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/dianzan/p/12366765.html
Copyright © 2020-2023  润新知