vue-动态路由

  目前路由的跳转是写死的,比如to="/user",那就会跳到对应的组件;

  现在我们的需求是,我访问 /user/123 或 /user/456 再或 /user/dao等等,都能跳到同一页面,并且把 /user后面的参数给带过来。这个实际就像学习springmvc时的restful风格一样;

  分三步走:

    1. to的属性值是可变的,后面跟的参数取决于data

<template>
  <div id="nav">
    <router-link :to="'/user/'+userId">User</router-link>
  </div>
  <router-view/>
</template>

<script>
export default {
  data(){
    return {
      userId: 'huya'
    }
  }
}

    2. 设置路由的映射规则,带占位符

const routes = [
  {
    path: '/',
    name: 'portal',
    redirect: '/home'
  },
  {
    path: '/user/:userId', //占位符的名字是userId,在接收该参数时,参数名是有用的;如果访问的路径是/user,是匹配这个路由的,必须后面跟东西
    name: 'User',
    component: User
  }
]

    3. 在跳转的组件中接收该参数

<template>
  <div>
    <h1>我是{{$route.params.userId}}</h1>
  </div>
</template>

  一个非常要注意的地方:$router和 $route 是两个完全不一样的东西。$router是我们的 new VueRouter,可在全部的组件进行使用;$route是当前的路由;比如说是User路由 来 跳转到 User组件的,那当前的路由就是User路由

posted @ 2021-04-01 11:30  爱编程DE文兄  阅读(185)  评论(0编辑  收藏  举报