欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-01 21:23:04
1.先在router.js中配置路由 { path: '/moviedetail/:movieid', name: 'moviedetail',...

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}`
       })
     }

效果如下:

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

上面获取到了 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);
 })

效果如下

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

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;
    })
   },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。