vue点击跳转到详情页(带参数)

5,656 阅读1分钟
注意:这里是模拟数据 真实开发可能不需要我们来比较id是不是一样 我门只需要发送请求的时候传入参数id给后台 后台就会返回对应id的数据给我们

1组件页面GoodsInfo.vue(点击该组件跳转到详情页)

首先html结构是这样的:

<div v-for="(item, index) in indexlist" :key="index"> 
       <div @click="dianji(item.id)">
          <span>{{ item.GroupEndDate }}</span>  
          <span>{{ item.id }}</span>  
      </div>  
 </div>

循环一个数组把数据展示出来,@click="dianji(item.id)"为点击跳转item.id参数为点击当前元素的id传到方法里面

下面来看dianji()方法里面:

 dianji(id) { 
     console.log(id,444);  // 这里的id就是我们上面传下来的id 
     let GoodsCodeid = id  //把id重新赋值
     //这里就是跳转name: "miun"是指跳转到miun页面上面
     //query: { id: GoodsCodeid}就是我们跳转过去需要带的参数
     this.$router.push({ name: "miun", query: { id: GoodsCodeid} });  
  },

2商品详情页面Goods.vue(接收商品组件页面GoodsInfo.vue传过来的GoodsCodeid)

 created () {     console.log(this.$route.query.id, 7777);  //首先在created里面打印一下id是传过来了     this.GoodsCodeid=this.$route.query.id     //然后我们重新赋值给GoodsCodeid  },  mounted() {
  //发送axios  get请求

    this.$axios        .get(api.sea_result, {  //api.sea_result是我的请求url          params: {    //携带的参数              GoodsCodeid:this.GoodsCodeid            },        })        .then((res) => {          this.indexlist = res.data.GoodsCode;  //请求成功之后把数据赋值给indexlist           this.indexlist.forEach(item=>{   //这里进行foreach循环数组里的每一项
          //接着判断当前数组里的id和我们点击传过来id是不是一样                    if(item.id === this.GoodsCodeid){                          this.indexlist = item   //把id是一样重新赋值                    }                })          console.log(this.indexlist, 333);   //打印一下就是我们需要id相等的那条数据了                        })        .catch((error) => {          console.log(error);        });  },

注意:这里是模拟数据 真实开发可能不需要我们来比较id是不是一样  我门只需要发送请求的时候传入参数id给后台   后台就会返回对应id的数据给我们