vue中路由传参方式之二(this.$router.push进行编程式路由跳转传参)

this.$router.push进行编程式路由跳转传参

router中路由配置

params第一种传参路由配置

 {
   path: '/homeDetails/:id',//要传递的参数前面加:
   component: () =>import ('@/views/home/homeDetails.vue')
  },

params第二种(name传参)或 query方式的路由配置

 {
   path: '/homeDetails',
   name:'homeDetails'
   component: () =>import ('@/views/home/homeDetails.vue')
  },

组件home点击传参

// 例如表格中点击表名称跳转新页面需要把id传到新页面使用
<template>
  <el-table :data="tableDatas">
    <el-table-column label="产品名称">
      <template slot-scope="scope" @click="handleClick(scope.row.id)">{{ scope.row.name}}</template>
    </el-table-column>
     ...
  </el-table>
 </template>
 <script>
 export default{
   data(){
    tableDatas:[];//表格数据
   },
   methods:{
    handleClick(id){
      console.log(id) //121345
      this.$router.push({path:`/homeDetails/${id}`}) //params方式传参第一种方式
      this.$router.push({name:'homeDetails',params:{id:id}}) //params方式传参第二种方式
      
      // 或
      this.$router.push({path:`/homeDetails`, query:{id:id}}) // query方式传参
    }
   }
 } 
</script>
  

组件homeDetails接受参数

// 子组件使用this.$route.params.id来接收路由参数
<template>
 <div><span>这就是我需要的id:</span>{{$route.params.id || $route.query.id}}</div>
  //或
 <div><span>这也是我需要的id:</span>{{id}}</div>
</template>
<script>
 export default{
   data(){
    id:''
   },
   mounted(){
    this.id = this.$route.params.id  //121345  params传参方式接收
    //或
    this.id = this.$route.query.id  //121345  query传参方式接收
   }
 } 
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端探险家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值