Auc的个人博客

vuePress-theme-reco Auc    2020 - 2021
Auc的个人博客 Auc的个人博客

选择一个主题吧~

  • 暗黑
  • 自动
  • 明亮
主页
分类
  • JavaScript
  • Vue
  • 数据结构与算法
  • 文档
  • 面试题
  • 笔记
标签
笔记
  • CSS
  • ES6
  • JavaScript
  • Vue
  • C语言
文档
  • Vueのapi
  • Vue Router
  • axios
  • Vue CLI
面试
  • JS
  • Vue
  • 基础
时间线
联系我
  • GitHub (opens new window)
author-avatar

Auc

62

文章

11

标签

主页
分类
  • JavaScript
  • Vue
  • 数据结构与算法
  • 文档
  • 面试题
  • 笔记
标签
笔记
  • CSS
  • ES6
  • JavaScript
  • Vue
  • C语言
文档
  • Vueのapi
  • Vue Router
  • axios
  • Vue CLI
面试
  • JS
  • Vue
  • 基础
时间线
联系我
  • GitHub (opens new window)
  • Vue-Router

    • 初识Vue Router
    • 动态路由
    • 嵌套路由
    • vue-router 的 api

动态路由

vuePress-theme-reco Auc    2020 - 2021

动态路由

Auc 2019-06-10 VueVue插件

# 动态路由

# 使用场景

把某种模式匹配到的所有路由,全都映射到同个组件,例如:有一个 User 组件,对于所有 ID 各不相同的用户个人信息页面,都要使用这个组件来渲染。

# 动态路径参数

在 vue-router 中可以使用“动态路径参数”(dynamic segment) 来达到这个效果。

一个“路径参数”使用冒号 : 标记。

如下,两个路由都映射到名为User的组件上

    <router-link to="/user/01">user01</router-link>
    <router-link to="/user/02">user02</router-link>
1
2
    const router = new VueRouter({
      routes: [
        // 动态路径参数 id  以冒号开头
        { path: '/user/:id', component: User }
      ]
    });
1
2
3
4
5
6

注意

使用动态路径参数后,当匹配到一个路由时,参数值会被设置到this.$route.params中,可以在每个组件中使用。`$router 见vue-router-api 文档

# 常见的传递参数的方式

常见的向路由传递参数的方式

  1. 路由传值(动态路由匹配) ==> 是路由的一部分
  2. 查询参数传值。==> 不是路由的一部分

# 常见的跳转路由的方式

1. 声明式导航: 利用<router-link></router-link>。

2. 编程式导航: 利用js方式跳转路由 this.$route.push('/user/1')

示例:

    <button @click="goUser1()">User1</button><br />
1
    const router = new VueRouter({
      routes: [
        { path: '/user/:id', component: { template: `<div>this is the page of {{ $route.params.id}}</div>` } },
      ]
    });
    const vm = new Vue({
      el: '#app',
      data: {
        msg: 'hello vue'
      },
      router,
      methods: {
        goUser1() {
          // 编程式导航 + 动态路由参数
          this.$router.push('/user/1');
        },
      },
    })
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18