vue-动态路由(编程式导航)

  • 路由导航功能是不能传递参数的,也就是说是静态路由。而能传递参数的路由模式,由于可以传递参数,所以其对应的路由数量是不确定的,称为动态路由。
  • 将参数作为路由。
  • 在参数名前面加上 :,然后将参数写在路由的path内。
{
    path: '/Detail/:myid', // Detail/aa  动态路由  detail路径不存在,必须加/aa
    component: Detail
},
  • 这样定义之后,vue-router就会匹配所有的:/Detail/1,/Detail/2,/Detail/3 ……,所以说这样定义的路由的数量是不确定的。
<template>
  <div>detail</div>
</template>
<script>
export default {
  mounted() {
    console.log("要id获取详情信息", this.$route.params.myid);
    // params:
    // myid: "coke"
  }
};
</script>
  • 通过 $route.params这个属性获取指定的参数值。
  • Detail.vue位置:import Detail from '../views/File/Detail'
  • Nowplaying.vue:
<template>
  <div>
    nowplaying
    <ul>
      <li v-for="data in datalist" :key="data" @click="changePage(data)">{{data}}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      datalist: ["coke", "tiramisu", "cake"]
    };
  },
  methods: {
    changePage(id) {
      console.log(id);
      // 编程式导航-路径跳转
      this.$router.push(`/detail/${id}`);
    }
  }
};
</script>
  • 命名路由:有时候,通过一个名称来标识一个路由会显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候,可以在创建Router实例的时候,在routes配置中给某个路由设置名称。
{
    path: '/Detail/:myid', // Detail/aa  动态路由  detail路径不存在,必须加/aa
    name: 'cannoli',
    component: Detail
  },
  • 要链接到一个命名路由,可以给router-linkto属性传一个对象:
<router-link :to="{name:'user',params:{myid:id}}"></router-link>
  • 这跟代码调用router.push()是一回事:
this.$router.push({ name: 'cannoli', params: { myid: id } })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值