vue 列表页跳转详情页获取id的方法以及详情页通过id获取数据

 

1.先在router.js中配置路由

{
      path: '/movieDetail/:movieId',
      name: 'movieDetail',
      component:movieDetail
  }

2.获取详情页的id,并派发父组件事件(movieList.vue)页面

 <li v-for="(item,index) in movies"  :key="index" @click="selectItem(item)">

    。。。。。。。


</li>
 methods:{
          selectItem(item){
              //console.log(item.moveId);
              //var item = item.moveId;
             this.$emit('select',item);
 }

3.在movieShow页面引用movieList.vue页面

<movieList :movies="movies"  @select="movieDetail"></movieList>
           //转入电影详情页
            movieDetail(item){
              console.log(`${item.moveId}`);
              this.$router.push({
                  path: `/movieDetail/${item.moveId}`
             })
          }

效果如下:

上面获取到了 id,接下来实现详情页通过id获取数据

  1)先获取传过来的id

var movieId = that.$route.params && that.$route.params.movieId;

2)引用豆瓣网的API

  /v2/movie/subject/:id 单个电影条目信息

const url = `api/movie/subject/${movieId}`;
         that.$axios.get(url)
          .then((res)=>{
            console.log(res.data);
  })

效果如下

3)在页面中引用

 <scroll class="movie-detail"
               :data="movieDetail"
       >

       。。。。。。

</scroll>

在js中将movieDetail进行赋值   movieDetail = res.data

data(){
      return {
        movieDetail:{}
      }
    },
    created(){
       this._getDateil();   
    },
    components:{
      scroll
    },
    methods:{
      _getDateil(){
       var that = this;
       var  movieId = that.$route.params && that.$route.params.movieId;
       console.log(movieId);
       //that.getMovieDetail(movieId);
        const url = `api/movie/subject/${movieId}`;
         that.$axios.get(url)
          .then((res)=>{
            
            console.log(res.data);

             movieDetail = res.data;
        })
      },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值