动态路由

在某些情况下,一个页面的path路径可能不确定,动态确定。

比如我们进入用户登录界面时,希望路径是:/user/name,也就是除了前面的/user还要跟上用户的id。这种path和component的匹配关系,叫动态路由(路由传递数据的一种方式)。

定义一个user组件:

<template>
  <div>
    <h1>我是用户</h1>
  </div>
</template>

<script>
    export default {
        name: "user",
    }
</script>

<style scoped>

</style>

配置组件路径映射:
注意这里的:/id

    {
      path:'/user/:id',
      name:'user',
      component:user
    }

使用该组件
id从data里面动态获取,用v-bind绑定router-link的to属性,这里需要字符串拼接

<template>
  <div id="app">
    <router-view/>
    <router-link to="home" tag="button" replace active-class="active">Home</router-link>
    <router-link to="About" tag="button">About</router-link>
    <router-link :to="'user/'+userID" tag="button">user</router-link>

  </div>
</template>

<script>
export default {
  name: 'App',
  data(){
    return{
      userID:"张三"
    }
  }
}
</script>

结果:在这里插入图片描述
如果要在user组件中显示该id,
在user组件中获取id:

<template>
  <div>
    <h1>我是用户</h1>
    {{$route.params.id}}
  </div>
</template>

这里需要区分$ router 和$ route,前者是获取创建的路由实例(new Router),后者是获取活跃的路由(也就是目前显示的组件)。
注意这里的$route.params.id的id是对应前面配置路径映射path的冒号后面的id,如果冒号后面是abc那么这里也应该是abc

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值